繁体   English   中英

错误HTTP 401.2-未经授权的Windows已授权

[英]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身份验证的手动停止。

  1. 导航到C:\\Windows\\System32\\inetsrv\\config
  2. 备份,备份,备份和重新备份applicationhost.config
  3. 确保再次备份
  4. 使用您喜欢的xml编辑器打开文件applicationhost.config
  5. 搜索节点<location path="Your web site name/yourapplication">
  6. 设置正确的身份验证提供程序:



重要的部分是存在<clear />节点。 这将破坏从全局配置的继承。

可以将其应用于整个IIS服务器,特定的网站或(如此处)特定的Web应用程序)。

我不确定,但是我想知道是否可以在应用程序内的web.config中直接设置此设置,而不是在IIS配置文件中设置。 这值得进行测试。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM