我正在为我的asp.net web应用程序使用sql数据库的窗口身份验证。但是在我将我的网站部署到另一台计算机后,我无法连接到数据库。是否有任何属性用于窗口身份验证以设置用户名和web.config文件中的密码。
答案 0 :(得分:4)
这听起来像你的情景吗?
一切都很好。然后将其移动到数据库和IIS不再位于同一服务器上的其他环境中,然后您无法让数据库识别IIS传入的凭据?
如果是的话,几个月前欢迎来到我的地狱。问题是,一旦两个进程不在同一个盒子上,他们就不再相互信任了。需要网络管理权限才能使两个进程跨服务器边界相互信任。不幸的是,我没有博客,但一般的步骤是
对于模糊的回忆感到抱歉,因为我不是那个有修改任何东西的人,所以我只需要观察他们点击按钮。 How to connect to SQL Server using Windows Authentication上的首发文章让我们走得很远。
答案 1 :(得分:1)
这涉及到这样一个事实:在您的开发人员框中,您(或者anon用户?或者开发者Web服务转换为用户的用户?)受到本地SQL实例的信任。但是,在部署时,运行的用户ASP.NET不受信任。
选项
答案 2 :(得分:0)
您最有可能使用可信连接字符串,例如
Data Source = myServerAddress; Initial 目录= MYDATABASE;集成 安全= SSPI;
...正在使用Windows身份验证。您需要使用标准连接字符串。 e.g。
SQL Server 2008:
Data Source = myServerAddress; Initial 目录= MYDATABASE;用户 ID =名为myUsername;密码= MYPASSWORD;
确保在SQL Server中设置非Windows身份验证用户。
答案 3 :(得分:0)
应在web.config中设置身份验证模式。另外,检查是否禁用了匿名身份验证。
<authentication mode="Windows"/>