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

时间:2011-05-25 05:52:36

标签: .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>

1 个答案:

答案 0 :(得分:3)

您没有添加<deny users="?"/>,它应该像......

<location path="Users/pAccessData.aspx"  >
    <system.web>
      <authorization>
        <deny users="?"/>
        <allow roles="Manager,Admin"/>            
      </authorization>
    </system.web>
  </location>

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

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