我还是MVC的新手,仍然试图围绕MVC的安全性。
目前,控制器中的每个“操作”似乎都受到“授权”属性中列出的角色/用户值的限制(如果存在)。在某种程度上,这是硬编码的,并且每次角色链接到每个控制器'Action'时都需要更改代码。
我想知道,有没有办法可以使用数据库存储这些值,而是动态检索它?
例如DB中的表: - 用于存储操作/角色链接的表 - 用于存储所有操作的表 - 存储所有角色的表 - 用于存储角色/用户链接的表 - 存储所有用户的表
这样,我不需要使用'Authorize'属性对每个'Action'的必需角色进行硬编码。 DB的更改就足够了。
上述情况可能吗?
谢谢!
答案 0 :(得分:1)
是的,你可以这样做,但不能不写一些自定义代码。
看看Thinktecture Resource/Action based authorization。它允许您插入自己的AuthorizationManager类。