【问题标题】:mvc roles and permission Design guidance requiredmvc 角色和权限 需要设计指导
【发布时间】:2013-06-29 06:07:18
【问题描述】:
对于我的应用程序,我需要设置基于角色的授权。我在网上看到了一些样品,但我的要求有点不同。我有经理、管理员、提交者等角色。然后我有区域经理、国家/地区经理、区域管理员、国家/地区管理员、区域提交者、国家/地区提交者等子角色。诸如角色和子角色。
我的问题是,当我在 .net MVC 中设计这个时,我应该将哪些子角色视为角色并根据区域和子区域定义 10 个不同的角色,或者我应该对管理员、提交者和经理等角色进行分组然后处理子角色分别在代码中?
什么是正确的设计?
有什么可以看的样本吗?
谢谢。
【问题讨论】:
标签:
c#
asp.net-mvc
user-roles
【解决方案1】:
许多应用程序都遇到了同样的情况。虽然我的角色有不同的名字。使用您的命名结构,我倾向于遵循您建议的前一种结构。
如果用户担任以下角色:经理、国家/地区。
您的用户仍将被允许执行标有 [Authorize(Roles = "Manager, Regional")] 的操作,
但不允许在标有 [Authorize(Roles = "Regional Manager")]
的操作中使用
我无法找到使用 [Authorize] 属性来禁止角色的方法(如在,如果不在角色中,或者在角色中并且在角色中)。
另一个想法,如果你有一个特定于管理器的控制器,你可以将控制器和操作上的 [Authorize(Roles = "Manager")] 属性设置为 [Authorize(Roles = "Regional")] 或 [Authorize (Roles = "Country"] 根据需要。
我认为,仅当用户同时(例如)同时担任“经理”和“区域”角色时,才允许用户在某些操作中要求用户同时担任这两个角色。这样,您可以将“经理”、“区域”和“国家”角色分开。这应该更容易根据需要将用户分配给角色。