背景:
ASP.Net MVC 网站。托管在 IIS7、Intranet 上。
数据库:SQL Server。通过 NHibernate 访问。
在连接字符串中,访问权限设置为Integrated Security: SSPI
。
(对 DB 的权限是基于 Active-Directory 的。)
简而言之,这是一个典型的双跳情况,
我需要将客户端的凭据传递给 IIS,然后从 IIS 传递给 SQL Server。
问题:
问题是黄屏死机,错误:
Login failed for user 'MyDomain\UserThatRunsAppPool'.
我试图解决问题的方法:
- 将身份验证配置为仅启用Windows 身份验证
和ASP.NET 模拟 - 将 Windows 身份验证设置
Provider
为Negotiate:Kerberos
(禁用内核模式身份验证后) - 确保在 Active Directory中将 UserThatRunsAppPool 的委托设置为:
“ ”Trust the user for delegation to any service (Kerberos only)
- 将 NHibernate SessionFactory 创建从移动
Application_BeginRequest()
到Session_Start()
我在尝试解决问题方面取得了多大的成功:
一点也不。
编辑:
我还尝试将 IIS 服务器的委托设置为“ Trust the user for delegation to any service (Kerberos only)
”(在 Active Directory 中)。