gpt4 book ai didi

iis-7 - 从IIS中的WindowsAuthentication中删除NEGOTIATE

转载 作者:行者123 更新时间:2023-12-04 17:01:39 27 4
gpt4 key购买 nike

我有一个运行在IIS 7.5中的站点,可以使用与实际服务器名称不同的DNS别名访问该站点。在IE 8中,集成身份验证失败,但是在Firefox和Chrome中,一切正常。 (IE会多次提出凭据挑战,然后显示401.1错误页面。)

我发现这是由于IE在NTLM上使用Kerberos(又称“协商”)引起的,并且Kerberos要求注册服务主体名称(使用SETSPN),以便DNS名称和服务器名称之间的不匹配得到正确处理。

但是,我的网站不需要模拟-仅需委派即可。因此,我不想将SetSPN弄乱,而只是想从IIS中的WindowsAuthentication方法列表中删除“Negotiate”。

我已经搜索了很长时间,以了解如何在IIS中执行此操作。我玩过许多appcmd命令-但我只是找不到在线示例,也无法通过阅读MSDN文档或使用appcmd /?来使appcmd命令仅适用于站点内的特定应用程序,而不适用于整个Web服务器。在两天后的几个小时的搜索中,至少访问了3十二个网页,但我仍然无果而终。

我该如何做这件事-似乎应该这么简单!

最佳答案

在IIS中打开配置编辑器。它随IIS 7.5一起提供,或者您可以下载IIS 7.0的IIS administration pack。导航到要影响的范围(服务器,站点或应用程序),然后打开图标:



将Section更改为system.webServer/security/authentication/windowsAuthentication:

单击providers项,然后单击右侧的Edit Items。选择“协商”项,然后单击“删除”:

关闭对话框,然后在右侧Apply Pane 中单击Actions

您的问题已解决!不再需要Kerberos/协商!

注意:您也可以在操作 Pane 中单击Generate Script,以显示将通过C#,javascript或从命令行使用appcmd进行更改的代码。

供引用,这是不使用配置编辑器即可完成工作的appcmd语句。

appcmd.exe set config "Virtual/path/to/application" -section:system.webServer/security/authentication/windowsAuthentication /-"providers.[value='Negotiate']" /commit:apphost

关于iis-7 - 从IIS中的WindowsAuthentication中删除NEGOTIATE,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16222946/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com