【发布时间】:2011-08-14 05:35:41
【问题描述】:
我已经设置了 3 个虚拟机:
- (A) Windows 2008 R2 中的 Active Directory。
- (B) Windows XP SP3 中的 Microsoft SQL Server 2008 Express。
- (C) Windows XP SP3 中的 IIS。
SQL Server 和 IIS 都加入了域,但主机 PC 没有。我还在 SQL Server 中创建了一个具有管理员权限的域管理员用户。我可以从彼此之间以及从托管 VM 的 PC ping/访问所有 VM。我可以毫无问题地在 IIS VM 内的 SQL Server Management Studio 中使用 Windows 身份验证连接到 SQL Server VM。
我在 IIS VM 中托管的 ASP.Net 应用程序中创建了一个非常简单的应用程序,该应用程序在 SQL Server VM 中打开了一个数据库连接。我已将网站设置为通过 Windows 身份验证仅进行身份验证。这是我的连接字符串:
Server=DATABASE;Database=HAP;Trusted_Connection=True;
代码如下:
SqlConnection connection = new SqlConnection(ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString);
using(connection) {
connection.Open();
}
我还在 AD 中为 IIS VM 设置了“信任此计算机以委托给任何服务(仅限 Kerberos)”。
它抛出 “登录失败。登录来自不受信任的域,不能用于 Windows 身份验证。”异常。如果我将连接字符串更改为:
Server=DATABASE;Database=HAP;User ID=sa;Password=connectsql;
应用程序运行良好。
我确实需要它通过 Windows 身份验证 和 不 通过 SQL Server 身份验证进行身份验证。
注意: IIS 提示用户输入他的 Windows 凭据。
【问题讨论】:
标签: asp.net iis active-directory windows-authentication