我有一个 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 应用程序中?