【问题标题】:How to deny a user in a role unless they are in another role in .NET c#如何拒绝角色中的用户,除非他们在.NET c#中的另一个角色
【发布时间】:2013-08-02 09:16:41
【问题描述】:

我正在开发一个包含多个用户的旧系统,这些用户可以分配有 1 个或多个角色。
无论出于何种原因,任何管理员都拥有分配给他们的管理员角色以及其他所有角色。

问题在于这个配置设置:

<location>
  <system.web>
    <authorization>
      <deny users="?" roles="ROLE1"/>
    </authorization>
  </system.web>
</location>

因为管理员被分配了“ROLE1”,他们将被拒绝访问。

我知道我可以通过允许除“ROLE1”之外的所有角色来解决这个问题,但它们有很多,这将是一场维护噩梦。

是否有任何允许和拒绝的组合会拒绝“角色”,除非用户也是“管理员”角色的成员?

谢谢

【问题讨论】:

  • 不应该只赋予管理员管理员角色吗?哪个应该覆盖其他角色。或者这在现阶段也很难改变?
  • 是的,他们应该这样做,但这需要我分析所有代码才能看到影响。我可能必须这样做,但想知道是否可以快速更改配置。
  • 您找到解决方案了吗?我还有另一个与此类似的问题。请在那里回答stackoverflow.com/questions/21703895/…

标签: c# asp.net .net authorization


【解决方案1】:

在您的拒绝规则之前专门允许管理员还不够吗?
从上到下检查授权规则,直到找到匹配项。

<authorization>
    <allow roles="Admin"/>
    <deny users="?" roles="ROLE1"/>
</authorization>

【讨论】:

  • 很确定我已经尝试过了,但没有成功。不过我会再试一次并报告...
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-08-22
  • 2021-04-25
  • 2012-04-04
  • 2021-01-03
相关资源
最近更新 更多