1

我有一个 Intranet 站点,我正在尝试设置为使用 Windows 身份验证并通过远程 SQL 服务器模拟用户。我过去已经设置了这些,但是 Web 服务器和 SQL 服务器一直在同一个盒子上。我已经搜索了谷歌尝试不同的设置,但我得到密码提示或用户“NT AUTHORITY\ANONYMOUS LOGON”的登录失败(用户的身份在网站上是正确的,但它没有通过 SQL 进行身份验证,因为它认为它是匿名的)。以下是我的设置,因此非常感谢任何见解。

网络配置

<authentication mode="Windows" />
<authorization>
    <allow users="*" />
</authorization>
<identity impersonate="true" />

IIS7

Anonymouse Authentication - Disabled
ASP.NET Impersonation - Enabled
Basic Authentication - Disabled
Forms Authentication - Disabled
Windows Authentication - Enabled
- Advanced Settings: Extended Protection=Off and Enable Kernal-mode authentication=Checked
- Providers: Negotiate and NTLM (I came across a blog to use Negotiate:Kerberos but that didn't work)

连接字符串

SqlConnection m_oConnection = new SqlConnection("Data Source=" + ConfigurationServer + ";Failover Partner=" + ConfigurationServerFailover + ";Initial Catalog=Master;Trusted_Connection=Yes;persist security info=False;");

我遇到了另一篇文章,让网络管理员更改 IIS 服务器的 Active Directory 记录,说“信任这台计算机进行委派”。还是不行。

有没有办法让我在没有密码提示的情况下使用 Windows 身份验证将安全性集成到远程 SQL 服务器的 ASP.NET 应用程序中?

4

1 回答 1

1

我们的网络管理员最终弄清楚了这一点。他必须向 SQL 服务器注册一个 SPN(服务主体名称)。对此知之甚少,但集成安全性现在可以工作。它仅适用于 IE,不适用于 Chrome、Firefox 或 Safari,但我暂时满足,并将查看其他非 Microsoft 浏览器是否可以允许集成安全性。我讨厌网络!!!:)

于 2012-09-23T13:20:44.777 回答