【问题标题】:Access to Action Methods depending on Roles in ASP.NET MVC [duplicate]根据 ASP.NET MVC 中的角色访问操作方法 [重复]
【发布时间】:2014-02-26 17:01:35
【问题描述】:

我知道可以根据[Authorize(Roles = "Publisher")] 等角色来注释操作方法来控制访问,但是如果访问控制信息来自数据库并且可以随时更改,我怎样才能达到相同的结果。

例如:Create 操作方法可以由 Publisher 访问,但不能在明天访问,因为 Admin 不允许 PublisherCreate。这些信息将来自数据库,我必须以某种方式在运行时放置适当的注释。

我希望我能够正确地传达我的问题。任何建议表示赞赏。

【问题讨论】:

标签: c# asp.net-mvc authentication roles


【解决方案1】:

发布者可以访问创建操作方法,但不能访问 明天因为管理员不允许发布者创建。这 信息将来自数据库,我必须以某种方式输入 运行时适当的注解。

我不会按照你提到的方式解决问题。在运行时将 Authorize 属性从“Publisher”更改为其他属性不是一个好的解决方案。相反,您可以做的是管理发布者角色中的用户(例如,在运行时将用户删除/添加到该角色)。我的意思是,让发布者角色有权访问创建操作,但在 SQL 方面,您管理属于发布者角色的用户。这样,您就无需在运行时更改 Authorize 属性。

要维护您在 SQL 数据库中的角色并使用它们,您可以选择Custom Role Provider

【讨论】:

  • 感谢您的评论。正如我所提到的,我将对数据库进行更改,但为了反映这一点,我不必限制用户访问特定的Action 而是显示拒绝访问View 吗? AFAIK,我需要 Authorize 属性来做到这一点。请提出建议。
猜你喜欢
  • 2010-12-19
  • 1970-01-01
  • 2020-01-21
  • 1970-01-01
  • 1970-01-01
  • 2011-02-21
  • 2013-12-08
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多