【问题标题】:ASP.NET Deny Access to certain pages based on rolesASP.NET 根据角色拒绝访问某些页面
【发布时间】:2011-05-25 05:52:35
【问题描述】:

我在 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>

【问题讨论】:

    标签: .net asp.net authentication web-config


    【解决方案1】:

    你没有加&lt;deny users="?"/&gt;,应该是这样的……

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

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

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

    【讨论】:

    • 所有角色都可以访问该文件夹。它是我要限制访问的页面 pAccessData。目前没有 MANager、Admin 角色的用户仍然可以访问该页面(我不想要)
    • 你能从我的答案中复制设置并尝试吗?
    • 试过了。没用。所有角色都可以访问 ChangePassword.aspx,但只有 Manager 和 Admin 角色才可以访问 pAccessData.aspx。两个页面都在用户文件夹中
    • 你能不能把这个改成
    • 它应该可以工作,你可能有文件夹层次结构问题。这些东西我用了很多年,这不是问题。你一定有其他问题。尝试分解您的问题并进行调试。
    猜你喜欢
    • 1970-01-01
    • 2016-02-23
    • 1970-01-01
    • 2022-11-26
    • 2013-01-30
    • 1970-01-01
    • 2011-10-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多