中国服务器网

服务器问题集锦,包括 Linux(Ubuntu, Centos,Debian等)和Windows Server服务器

Learn more

Kerberos双跳在ASP.NET 4.0和SQL2008R2中

我有一个ASP.NET 4.0应用程序,我需要将身份validation转发到数据库。 为了这个请求的帮助,让我们调用Web服务器“app1”和数据库服务器“sql1”。 SQL2008R2数据库服务作为自定义域帐户“SqlServer”下的命名实例“SQL2008R2”运行。 该服务器正在运行Windows Server 2008 R2企业版。 我为此创build了一个SPN … setspn -a MSSQLSvc/sql1.mydomain.local:SQL2008R2 SqlServer ASP.NET应用程序在集成pipe道模式下使用自定义域帐户“WebApplicationUser”在应用程序池下运行。 它目前运行在运行Windows 7 Enterprise的笔记本电脑上,但最终将托pipe在Windows Server 2008 R2标准版上。 我已经为应用程序创build了2个SPN(在我正在运行的Windows 7机器上)… setspn -a http/app1 WebApplicationUser setspn -a http/app1.mydomain.local WebApplicationUser 在Active Directory用户和计算机中,我select了“WebApplicationUser”帐户,并使用任何协议(我也尝试使用Kerbero)启用了“MSSQLSvc / sql1.mydomain.local:SQL2008R2”的约束委派。 该应用程序在IIS 7.5中设置,并且设置为禁用匿名,基本,摘要和表单,同时启用“ASP.NET模拟”和“Windows”。 Windows身份validation已closures“扩展保护”并启用“内核模式身份validation”。 提供商是按照“协商”和“NTLM”的顺序。 ASP.NET应用程序使用EF,并将连接stringconfiguration为使用集成安全性。 <connectionStrings> <add name="MyContext" connectionString="metadata=res://*/Data.MyModel.csdl|res://*/Data.MyModel.ssdl|res://*/Data.MyModel.msl;provider=System.Data.SqlClient;provider connection string=&quot;Data Source=sql1.mydomain.local\sql2008r2;Initial Catalog=MyDatabase;Persist Security Info=false;Integrated Security=True;MultipleActiveResultSets=True&quot;" providerName="System.Data.EntityClient" /> </connectionStrings> 我的networkingconfiguration既指定Windows身份validation和模拟,因为我使用asynchronous页面,我也已启用inpersonation策略stream动… […]