对于我的应用程序,我需要设置基于角色的授权。我在网上看到了一些样品,但我的要求有点不同。我有像经理,管理员,提交者等角色。然后我有像区域经理,国家经理,区域管理员,国家管理员,区域提交者,国家提交者等子角色,所以类似的角色和子角色。
我的问题是,当我在.net MVC中设计时,我应该将子角色视为角色,并基于区域和子区域定义10种不同的角色,还是应该将管理员、提交者和经理等角色分组,然后在代码中单独处理子角色?
正确的设计是什么?
有没有我可以看一下的样品?
谢谢。
发布于 2013-07-02 08:14:40
在很多应用程序中,我都遇到过同样的情况。虽然我的角色有不同的名字。使用你的命名结构,我倾向于遵循你的建议的前一个结构。
如果用户具有以下角色:经理、国家/地区。
仍允许您的用户执行标记为Authorize的操作(Roles= "Manager,Regional"),但不允许执行标记为Authorize的操作(Roles= "Regional“)
我还没能找到一种方法来禁止使用Authorize属性的角色(如in,如果不是在角色中,或者是在角色和角色中)。
另一种想法是,如果您有一个特定于经理的控制器,您可以根据需要在控制器和操作上设置Authorize(Roles = "Manager")属性为Authorize(Roles = "Regional")或Authorize(Roles = "Country“)。
我认为,这将允许用户在某些操作中同时具有(例如)“经理”和“区域”角色,这些操作要求用户同时具有这两个角色。这样,您可以将“Manager”、“Regional”和“Country”角色分开。这将使根据需要将用户分配到角色变得更容易。
https://stackoverflow.com/questions/17416006
复制