Windows身份验证允许用户不工作

Paw*_*iya 5 windows-authentication asp.net-mvc-4

我正在尝试对我的应用程序使用Windows身份验证,对于我尝试过的测试只允许我自己并拒绝所有其余的

<authentication mode="Windows" />
<authorization>
    <allow users="DomainName\nogariyap" />
    <deny users="*"/>
</authorization>
Run Code Online (Sandbox Code Playgroud)

Access Denied即使我使用相同的用户登录到我的机器,它也会给我" "错误"DomainName\nogariyap"

当我把它改成这个

<allow users="*" />
Run Code Online (Sandbox Code Playgroud)

有用

我不知道为什么它不适用于特定的Windows用户?

编辑

当我添加它时它扼杀了 system.webServer

   <security>
        <authentication>
            <windowsAuthentication enabled="true" />
            <anonymousAuthentication enabled="false" />
        </authentication>
        <authorization>
          <remove users="*" roles="" verbs="" />
          <add users="DomainName\nogariyap" accessType="Allow"/>
          <add users="?" accessType="Deny"/>
        </authorization>
    </security>
Run Code Online (Sandbox Code Playgroud)

但我不知道它为什么不使用这些设置system.web,这两个设置有什么区别?

Jua*_*uan 2

<system.web>是项目配置,<system.webserver>是服务器配置。两者应该兼容,但建议似乎是使用服务器配置而不是另一个。它是在 IIS7 上引入的。两者之间的一些区别是:

  • 在system.webserver中的顺序:
    • 首先从父级开始评估拒绝规则
    • 允许从父级开始的规则。
    • 规则集合中的出现顺序

  • 在system.web中的顺序:
    • 较低级别首先上升到父级
    • 规则集合中的出现顺序

  • 在网络服务器中,您可以将规则应用于任何元素,即:图像、文档,无需进一步配置(在您想要处理程序的每个扩展名之间添加映射)