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

时间:2012-07-03 09:24:56

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

我要做:

  

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

在web.config <authentication mode="Windows" />

中设置后

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

  

错误HTTP 401.2 - 未经授权您无权查看此页面   因为认证标题不可接受。

更新

enter image description here

UPDATE2: file: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>

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

查看我的previous answer

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

您应该强制服务器使用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. 设置正确的身份验证提供程序:

                 
                                                                                                                                              
                              

  7. 重要的是有<clear />节点。这将破坏全局配置的继承。

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

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