【问题标题】:Error HTTP 401.2 - Unauthorized with windows authorized错误 HTTP 401.2 - 未经授权,Windows 已授权
【发布时间】:2012-07-03 09:24:56
【问题描述】:

我要做的:

单击开始,指向管理工具,然后单击 Internet 信息服务 (IIS) 管理器。在连接窗格中,展开 服务器名称,展开站点,然后选择站点、应用程序 或您要为其启用扩展保护的 Web 服务 Windows 身份验证。滚动到主页中的安全部分 窗格,然后双击身份验证。在认证中 窗格中,选择 Windows 身份验证。单击操作中的启用 窗格。单击“操作”窗格中的“高级设置”。

在 web.config 中设置后<authentication mode="Windows" />

如果我从 VS2010 启动应用程序 - 一切正常。 如果否则我从 IIS 启动应用程序我有问题。 请求的用户数据我输入 Computer\NameUser。 然后是一个错误:

错误 HTTP 401.2 - 未经授权 您无权查看此页面 因为身份验证标头的不可接受性。

更新:

更新2: 文件: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>

【问题讨论】:

    标签: c# asp.net-mvc-3 iis iis-7 windows-authentication


    【解决方案1】:

    看看我的previous answer。

    基本上,这意味着身份验证票证与服务器的期望不符。

    您应该强制服务器使用 NTML 或 Kerberos(取决于您的身份验证策略)。

    [编辑] 因为 appcmd 可能有点晦涩难懂,这里是手动停止以强制 NTLM 身份验证。

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



    重要的部分是有&lt;clear /&gt; 节点。这将破坏从全局配置的继承。

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

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

    【讨论】:

    • 史蒂夫 B,我做错了,但这些方法对我没有帮助
    • 临时尝试激活基本身份验证而不是 Windows 身份验证。我很确定这会奏效。如果我是对的,你唯一需要做的就是appcmd.exe set config -section:system.webServer/security/authentication/windowsAuthentication /+"providers.[value='NTLM']" /commit:apphost
    • 错误(消息:新对象添加缺少的必需属性。无法添加类型为“add”的输入集合的副本,其唯一键属性为“value”,值为“NTLM”。)
    • 已删除,但这对我没有帮助。
    【解决方案2】:

    在您访问网站的安全性之后,您必须为用户窗口添加权限。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-02-07
      • 1970-01-01
      • 2021-05-12
      • 2014-06-24
      • 2014-02-26
      • 2017-12-20
      • 1970-01-01
      相关资源
      最近更新 更多