【问题标题】:Deny access to specific roles拒绝访问特定角色
【发布时间】:2012-08-08 16:45:57
【问题描述】:

我有一个基于角色访问的文件夹 UserManagement,如下所示。

<authorization>
    <deny users="?" />
    <allow roles="UserAdmin_M"/>
    <allow roles="UserAdmin_MC"/>
    <deny roles="ReportsAdmin"/>
  </authorization>

管理员可以访问其他文件夹以及报告。 现在的问题是,我有一个角色为 UserAdmin_M 和 ReportsAdmin 的用户“TestUser”,但应用程序阻止了 TestUser 对“UserManagement”文件夹的访问。如何克服?

【问题讨论】:

  • 我过去使用过这个,我似乎记得它与角色的顺序有关,并且拒绝角色总是比允许角色具有更高的优先级。
  • 是的,这完全与角色的顺序有关。我在想否认应该放在第一位..

标签: c# asp.net .net


【解决方案1】:

我可能错了,但这可能与您将角色分配给用户的顺序有关吗?从 MSDN 它指出:

在运行时,授权模块从最本地的配置文件开始遍历允许和拒绝元素,直到授权模块找到适合特定用户帐户的第一个访问规则。然后,授权模块根据找到的第一个访问规则是允许还是拒绝规则来授予或拒绝对 URL 资源的访问。

确保在ReportsAdmin 规则之前分配UserAdmin_M 角色。

仅供参考 - 您可以在配置中用逗号分隔角色:

<authorization>
    <deny users="?" />
    <allow roles="UserAdmin_M, UserAdmin_MC" />
    <deny roles="ReportsAdmin" />
</authorization>

【讨论】:

  • 感谢逗号分隔信息。我不知道那件事。这行得通。
猜你喜欢
  • 2018-10-03
  • 1970-01-01
  • 2021-05-25
  • 2018-08-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-11-14
  • 2021-10-19
相关资源
最近更新 更多