ASP.NET拒绝基于角色访问某些页面

dad*_*haw 5 .net asp.net authentication web-config

我在web.config中有以下内容,但仍然没有角色MAnager或Admin的用户仍然可以访问pAccessData.aspx页面.该页面存储在目录Users中

<location path="Users"  >
    <system.web>
      <authorization>
        <allow users="*" />
      </authorization>
    </system.web>
  </location>

  <location path="~/Users/ChangePassword.aspx"  >
    <system.web>
      <authorization>
        <allow users="*"  />
      </authorization>
    </system.web>
  </location>

  <location path="~/Users/pAccessData.aspx"  >
    <system.web>
      <authorization>
        <allow roles="Manager,Admin"/>
        <deny users="*" />
      </authorization>
    </system.web>
  </location>
Run Code Online (Sandbox Code Playgroud)

Muh*_*tar 3

你没有添加<deny users="?"/>,它应该是这样的......

<location path="Users/pAccessData.aspx"  >
    <system.web>
      <authorization>
        <deny users="?"/>
        <allow roles="Manager,Admin"/>            
      </authorization>
    </system.web>
  </location>
Run Code Online (Sandbox Code Playgroud)

编辑:您已经指定了<allow users="*" />这意味着它将允许所有用户访问,因为您没有提到用户可以访问该文件夹的角色。

<location path="Users"  >
<system.web>
  <authorization>
    <allow users="*" />
  </authorization>
</system.web>
Run Code Online (Sandbox Code Playgroud)