Iis 7 从Windows中删除协商IIS中的身份验证
我有一个运行在IIS 7.5中的站点,该站点使用与实际服务器名称不同的DNS别名进行访问。在IE8中,集成身份验证失败,但在Firefox和Chrome中,一切正常。(IE多次显示凭证质询,然后显示401.1错误页面。) 我发现这是由于IE在NTLM上使用Kerberos(也称为“协商”),Kerberos需要注册服务主体名称(使用SETSPN),以便正确处理DNS名称和服务器名称之间的不匹配 然而,我的网站不需要模拟——只要有委托就足够了。因此,我想从IIS中的WindowsAuthentication方法列表中删除“协商”,而不是搞乱SetSPN 我已经搜索了相当长的一段时间,以了解如何在IIS中执行此操作。我使用过许多Iis 7 从Windows中删除协商IIS中的身份验证,iis-7,iis-7.5,windows-authentication,kerberos,Iis 7,Iis 7.5,Windows Authentication,Kerberos,我有一个运行在IIS 7.5中的站点,该站点使用与实际服务器名称不同的DNS别名进行访问。在IE8中,集成身份验证失败,但在Firefox和Chrome中,一切正常。(IE多次显示凭证质询,然后显示401.1错误页面。) 我发现这是由于IE在NTLM上使用Kerberos(也称为“协商”),Kerberos需要注册服务主体名称(使用SETSPN),以便正确处理DNS名称和服务器名称之间的不匹配 然而,我的网站不需要模拟——只要有委托就足够了。因此,我想从IIS中的WindowsAuthentic
appcmd
命令,但我无法找到在线示例,也无法通过阅读MSDN文档或使用appcmd/?
使appcmd
命令仅适用于站点中的特定应用程序,而不适用于整个web服务器。在两天多的时间里,经过几个小时的搜索,至少访问了3打网页,我仍然没有找到任何结果
我怎么能把这件事做完呢?看起来应该很容易 在IIS中打开配置编辑器。它随IIS 7.5提供,或者您可以下载IIS 7.0的。导航到要影响的范围(服务器、站点或应用程序),然后打开图标: 将该部分更改为
system.webServer/security/authentication/windowsAuthentication
:
单击提供者
项目,然后单击右侧的编辑项目
。选择“协商”项目并单击“删除”:
关闭对话框并单击右侧操作
窗格中的应用
你的问题解决了!不再需要Kerberos/协商
注意:您还可以单击操作窗格中的生成脚本
,从命令行显示将在C#、javascript或appcmd中进行更改的代码
以下是appcmd
语句,用于在不使用配置编辑器的情况下执行作业,以供参考
appcmd.exe set config "Virtual/path/to/application" -section:system.webServer/security/authentication/windowsAuthentication /-"providers.[value='Negotiate']" /commit:apphost