根据ASP.NET MVC中的角色访问操作方法

时间:2014-02-03 09:19:21

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

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

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

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

1 个答案:

答案 0 :(得分:1)

  

创建操作方法可以由Publisher访问但不能   明天因为Admin禁止Publisher创建。这个   信息将来自数据库,我必须以某种方式提出   运行时适当的注释。

我不会像你提到的那样解决问题。在运行时将Authorize属性从“Publisher”更改为其他属性不是一个好的解决方案。相反,您可以做的是管理Publisher角色中的用户(例如,在运行时删除/添加该角色的用户)。我的意思是,让Publisher Role可以访问Create Action,但在SQL端,您可以管理受发布者角色影响的用户。这样,您就无需在运行时更改Authorize属性。

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