asp.net – 如何配置IIS以便在连接到SQL Server时使用用户的域凭
我们最近发布了最新版本的Intranet应用程序,它现在使用
Windows身份验证作为标准,并且需要能够使用最终用户的域凭据连接到已配置的SQL服务器.
最近我们发现,在几个客户部署中,尽管IIS可以看到用户的域凭据,但它不会将这些凭据传递给SQL服务器.相反,它似乎使用匿名帐户.这是尽管遵循所有正确的步骤(将目录安全性更改为Win Auth,更新Web.Config以使用Win Auth并拒绝匿名用户). 我一直在做很多阅读,这表明我们需要确保Kerberos到位,但我不确定(a)这是多么有效(即它真的是一个要求吗?)或(b)如何去调查它是否已经设置或如何进行设置. 我们的情况是,我们需要能够配置IIS或应用程序为客户工作,或者向客户解释他们需要做些什么才能使其正常工作. 我们已经设法使用测试SQL服务器和开发人员的IIS框在我们的内部网络上重现这一点,所以我们将搞乱这个设置,看看我们是否可以提出解决方案,但如果有人有任何聪明的想法,我很高兴听到他们! 我特别想听听人们对Kerberos的看法或建议.这是一项要求,如果是,我如何向客户概述应如何配置? 哦,我也看到有几个人提到域名的’经典单跳规则’和传递窗口凭据,但我不知道这实际上有多少重量? 谢谢! 马特 解决方法
这称为
Double-Hop Problem,禁止将用户凭证转发给第三方.当他们从一台计算机,另一台(第一跳)上的站点进行浏览,并将凭证转发到第三台计算机(第二跳)时,会发生这种情况.
如果您在同一台计算机上托管IIS和SQL Server,则不会出现此问题. 在How to use the System.DirectoryServices namespace in ASP.NET发布了更多技术细节,解释了双跳问题以及主要和次要令牌. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net – 检测到SQL的非关闭连接
- 让 .NET 轻松构建中间件模式代码
- asp.net – 如何以完全信任的方式部署IIS ASP .N
- .net – appSettings等效于applicationSettings的
- asp.net-core – 在运行时更改注入的对象
- Programming学习1_ASP、JSP、PHP 、Perl、.NET 等
- asp.net-mvc – ASP.NET MVC – 在控制器之间共享
- ASP.NET 4.0中最好的浏览器检测解决方案
- ASP.NET WebApi 基于OAuth2.0实现Token签名认证
- 如何从asp.net中的代码访问JavaScript变量