[英]Error HTTP 401.2 - Unauthorized with windows authorized
我要做:
单击开始,指向管理工具,然后单击Internet信息服务(IIS)管理器。 在“连接”窗格中,展开服务器名称,展开“站点”,然后选择要为其启用Windows扩展保护身份验证的站点,应用程序或Web服务。 滚动到“主页”窗格中的“安全性”部分,然后双击“身份验证”。 在“身份验证”窗格中,选择“ Windows身份验证”。 在“操作”窗格中,单击“启用”。 单击“操作”窗格中的“高级设置”。
在web.config <authentication mode="Windows" />
如果我从VS2010启动应用程序-一切正常。 如果我从IIS启动应用程序,我会遇到问题。 请求的用户数据我输入Computer \\ NameUser。 然后是一个错误:
错误HTTP 401.2-未经授权由于身份验证标头的不允许,您无权查看此页面。
更新:
update2:文件:C:\\ Windows \\ System32 \\ inetsrv \\ config \\ applicationhost.config
<location path="windowsAuthTest">
<system.webServer>
<security>
<authentication>
<anonymousAuthentication enabled="false" userName="User" password="[enc:AesProvider:BZ7e2mkTjJL7Wo8xMm2PQKZ2biP1nKB2SjAfw9WmJoBhkMbl4DYqEJU0bzIj3CxF:enc]" />
<windowsAuthentication enabled="true" useKernelMode="false">
<extendedProtection tokenChecking="None" />
<providers>
<clear />
<add value="NTLM" />
<add value="Negotiate" />
</providers>
</windowsAuthentication>
</authentication>
</security>
</system.webServer>
</location>
之后,您要访问站点的安全性,必须为用户窗口添加权限。
看看我以前的回答 。
基本上,这意味着身份验证票证与服务器的期望不符。
您应强制服务器使用NTML或Kerberos(取决于身份验证策略)。
由于appcmd的[编辑]可能有点晦涩,这是强制停止NTLM身份验证的手动停止。
C:\\Windows\\System32\\inetsrv\\config
<location path="Your web site name/yourapplication">
设置正确的身份验证提供程序:
重要的部分是存在<clear />
节点。 这将破坏从全局配置的继承。
可以将其应用于整个IIS服务器,特定的网站或(如此处)特定的Web应用程序)。
我不确定,但是我想知道是否可以在应用程序内的web.config中直接设置此设置,而不是在IIS配置文件中设置。 这值得进行测试。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.