【发布时间】:2011-06-24 23:45:12
【问题描述】:
我正在为我的 asp.net Web 应用程序使用 sql 数据库的 Window 身份验证。但是在我将我的网站部署到另一台计算机后,我无法连接到数据库。是否有任何用于设置用户名的窗口身份验证属性和web.config 文件中的密码。
【问题讨论】:
标签: c# asp.net sql-server-2008
我正在为我的 asp.net Web 应用程序使用 sql 数据库的 Window 身份验证。但是在我将我的网站部署到另一台计算机后,我无法连接到数据库。是否有任何用于设置用户名的窗口身份验证属性和web.config 文件中的密码。
【问题讨论】:
标签: c# asp.net sql-server-2008
这听起来像你的场景吗?
一切都很好。然后将其移至数据库和 IIS 不再位于同一服务器上的不同环境,然后您无法让数据库识别 IIS 传入的凭据?
如果是这样,那么欢迎几个月前来到我的地狱。问题是一旦两个进程不在同一个盒子上,它们就不再相互信任。需要网络管理权限才能使两个进程跨服务器边界相互信任。不幸的是,我没有写博客,但一般步骤是
抱歉,我的记忆模糊不清,而且由于我不是有资格修复任何东西的人,所以我只能观察他们点击按钮。 How to connect to SQL Server using Windows Authentication 上的起始文章让我们走得很远。
【讨论】:
这涉及一个事实,即在您的开发人员框中,您(或匿名用户?或开发者 Web 服务启动的用户?)受本地 SQL 实例的信任。但是,当您部署时,运行 ASP.NET 的用户不受信任。
选项
【讨论】:
您很可能使用受信任的连接字符串,例如
数据源=myServerAddress;初始 目录=myDataBase;集成 安全=SSPI;
...因为您正在使用 Windows 身份验证。您需要使用标准连接字符串。例如
SQL Server 2008:
数据源=myServerAddress;初始 目录=myDataBase;用户 id=我的用户名;密码=我的密码;
请务必在 SQL Server 中设置非 Windows 身份验证用户。
【讨论】:
身份验证模式应在 web.config 中设置。另外,请检查是否禁用了匿名身份验证。
<authentication mode="Windows"/>
【讨论】: