加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Windows > 正文

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

发布时间:2020-12-14 02:56:24 所属栏目:Windows 来源:网络整理
导读:我有一个在IIS 7.5中运行的站点,使用与实际服务器名称不同的DNS别名访问该站点.在IE 8中,集成身份验证失败,但在Firefox和Chrome中一切正常. (IE会出现几次凭证质询,然后显示401.1错误页面.) 我已经发现这是因为IE使用Kerberos(又名“Negotiate”)而非NTLM,而
我有一个在IIS 7.5中运行的站点,使用与实际服务器名称不同的DNS别名访问该站点.在IE 8中,集成身份验证失败,但在Firefox和Chrome中一切正常. (IE会出现几次凭证质询,然后显示401.1错误页面.)

我已经发现这是因为IE使用Kerberos(又名“Negotiate”)而非NTLM,而Kerberos需要注册服务主体名称(使用SETSPN),以便正确处理DNS名称和服务器名称之间的不匹配.

但是,我的网站不需要冒充 – 只需委派即可.因此,我只想从IIS中的WindowsAuthentication方法列表中删除“Negotiate”,而不是搞乱SetSPN.

我已经搜索了相当长的一段时间来了解如何在IIS中执行此操作.我玩了很多appcmd命令 – 但我找不到在线示例,或者通过阅读MSDN文档或使用appcmd /来弄清楚如何?使appcmd命令仅适用于站点内的特定应用程序,而不是整个Web服务器.在两天后的几个搜索小时内,访问了至少三十几个网页,我仍然没有结果.

如何在tarnation中完成这项工作 – 看起来它应该如此简单!

解决方法

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

.

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

单击提供程序项,然后单击右侧的“编辑项”.选择“Negotiate”项,然后单击“Remove”:

关闭对话框,然后单击右侧“操作”窗格中的“应用”.

你的问题解决了!不再有Kerberos /谈判!

注意:您还可以单击操作窗格中的“生成脚本”,以显示将在命令行中以C#,javascript或appcmd进行更改的代码.

作为参考,这里是appcmd语句,用于在不使用配置编辑器的情况下完成工作.

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读