我知道可以根据[Authorize(Roles = "Publisher")]
之类的角色注释操作方法来控制访问,但如果访问控制信息来自数据库并且可以随时更改,我怎样才能获得相同的结果。
例如:Create
操作方法可由Publisher
访问,但不能在明天访问,因为Admin
不允许Publisher
到Create
。这些信息将来自数据库,我必须以某种方式在运行时添加适当的注释。
我希望我能够正确地传达我的问题。任何建议都表示赞赏。
答案 0 :(得分:1)
创建操作方法可以由Publisher访问但不能 明天因为Admin禁止Publisher创建。这个 信息将来自数据库,我必须以某种方式提出 运行时适当的注释。
我不会像你提到的那样解决问题。在运行时将Authorize属性从“Publisher”更改为其他属性不是一个好的解决方案。相反,您可以做的是管理Publisher角色中的用户(例如,在运行时删除/添加该角色的用户)。我的意思是,让Publisher Role可以访问Create Action,但在SQL端,您可以管理受发布者角色影响的用户。这样,您就无需在运行时更改Authorize属性。
要在SQL数据库中维护您的角色并使用它们,您可以转到Custom Role Provider。