【发布时间】:2010-10-15 23:37:00
【问题描述】:
情况是这样的。我正在开发一个新网站来访问旧数据库。这是 DoD 安装,所以周围有很多安全措施。
当前的应用程序是用经典的 ASP、VBScript 和一些 javascript 编写的。新系统是 ASP.NET。
在旧系统中访问数据库意味着使用您自己的凭据(域名\用户名)访问服务器。现在我正在尝试测试我所做的一些早期开发。当我使用 Cassini(在 VS2008 下)时,我可以毫无问题地访问数据库,因为 ourdomain\myusername 在 SQL Server 实例中注册为受信任的连接。由于我必须编写安全方面的内容,Cassini 不能再用作测试服务器 - 我必须使用 IIS(我们这里有安全读卡器)。卡西尼无法处理它们。
因此,当我在本地电脑上将适当的帐户添加到管理员以便我可以在使用 IIS 时在 VS2008 中进行调试时遇到所有问题时,我尝试连接到数据库并被拒绝,因为 MYPC\ASPNET 是不是受信任的连接。
更改现有数据库是不可能的。用于访问数据库的硬编码用户名和密码是不可能的。
我问 DBA 是否可以将 MYPC\ASPNET 添加到域组中,以便 SQL Server 可以将其视为可信连接(因为 MYDOMAIN\MYNAME 位于被视为可信连接的组中)。他告诉我这在技术上是不可能的。
最终将有三四台机器(我的、另一位开发人员、最终的实时 Web 服务器和未来的测试 Web 服务器)的 ASPNET 帐户将访问我们的两台 SQL 服务器(实时和测试) .
我必须做些什么才能使现有的 SQL 服务器将我视为朋友而不是敌人?我查看了模拟,但我得到的印象是它与我们的系统不兼容 - 业务规则调用一个通用例程来创建一个 SqlConnection 对象并打开它(甚至可能是一个 SqlTransaction 对象与之一起使用)并且使用了这个对象其余的业务规则和数据访问层,直到完成。一旦打开 SqlConnection(并通过 ByRef 返回调用例程),模拟似乎不会持续存在
提前感谢您的任何建议。
【问题讨论】:
标签: asp.net sql-server security database-connection sqlconnection