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

时间:2014-01-15 08:19:31

标签: asp.net-mvc-4 windows-authentication

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

<authentication mode="Windows" />
<authorization>
    <allow users="DomainName\nogariyap" />
    <deny users="*"/>
</authorization>

但即使我使用相同的用户[{1}}

登录到我的计算机,它也会出现“Access Denied”错误

当我将其更改为

"DomainName\nogariyap"

它有效

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

修改

当我在<allow users="*" />

中添加它时,它很有效
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> 中的设置,这两个设置有什么区别?

2 个答案:

答案 0 :(得分:2)

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

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

  • 在system.web中顺序:
    • 较低级别首先进入父级
    • 规则集中的出现顺序

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

答案 1 :(得分:0)

在第一次尝试中你拒绝用户=“*”意味着拒绝所有人。在第二次尝试中,你拒绝了用户=“?”意思是未知用户(未登录)。