Windows身份验证使用户无法正常工作

问题描述:

我试图使用Windows身份验证我的应用程序,在测试中,我曾尝试允许只有我自己,并拒绝所有其他Windows身份验证使用户无法正常工作

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

但它甚至给了我“Access Denied”错误我登录到我的机器上使用相同的用户"DomainName\nogariyap"

当我将其更改为这个

<allow users="*" /> 

它的工作原理

我不知道为什么它不适用于特定的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> 

strangly工作,但我不知道为什么它不与system.web的设置工作,是什么在这些差别两个设置?

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

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

  • 的System.Web中的顺序:
    • 较低级别的第一上升到父在外观
    • 订单规则集

  • 在Web服务器,你可以将规则应用于任何元素含义:图片,文档,而无需进一步的配置(加上每个扩展之间的映射要处理程序)

在第一次尝试

你拒绝用户=“*”意味着否认每个人。在第二次尝试中,您拒绝了用户=“?”含义未知用户(未登录)。