尝试使用集成安全性设置 IIS7 以进行远程 sql 服务器访问
Posted
技术标签:
【中文标题】尝试使用集成安全性设置 IIS7 以进行远程 sql 服务器访问【英文标题】:Trying to setup IIS7 for remote sql server access using integrated security 【发布时间】:2012-07-26 20:29:48 【问题描述】:我有一个 Intranet 站点,我正在尝试将其设置为使用 Windows 身份验证并通过远程 SQL 服务器模拟用户。我过去已经设置了这些,但是 Web 服务器和 SQL 服务器一直在同一个盒子上。我已经搜索了谷歌尝试不同的设置,但我得到密码提示或用户“NT AUTHORITY\ANONYMOUS LOGON”的登录失败(用户的身份在网站上是正确的,但它没有通过 SQL 进行身份验证,因为它认为它是匿名的)。以下是我的设置,非常感谢任何见解。
Web.Config
<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 身份验证在 ASP.NET 应用程序中集成安全性到远程 SQL 服务器而无需密码提示?
【问题讨论】:
看来我可能遇到了双跳问题 (weblogs.asp.net/owscott/archive/2008/08/22/…)。希望当网络管理员周一回来时,他会有想法。 【参考方案1】:我们的网络管理员最终解决了这个问题。他必须向 SQL 服务器注册一个 SPN(服务主体名称)。对此知之甚少,但集成安全性现在可以使用。它仅适用于 IE,不适用于 Chrome、Firefox 或 Safari,但我暂时满足,并将查看其他非 Microsoft 浏览器是否可以允许集成安全性。我讨厌网络!!! :)
【讨论】:
以上是关于尝试使用集成安全性设置 IIS7 以进行远程 sql 服务器访问的主要内容,如果未能解决你的问题,请参考以下文章
IIS7 集成管道:maxConcurrentRequestsPerCPU 和 requestsQueueLimit 设置之间的交互