将角色组合在一起&将用户分配到组(ASP.NET角色提供程序)

时间:2012-02-21 12:01:16

标签: c# asp.net membership-provider roleprovider

是否有任何预先存在的解决方案可以扩展内置的SQL Membership Provider& .NET中的SQL角色提供程序,具有组成员资格的概念。

现在角色关系看起来像是

Users ====> UserRoles <=====Roles

我想将其扩展为

Users ====> UserGroups <==== Groups ====> GroupRoles <==== Roles.

假设您有一个具有30或40个不同角色的应用程序。每次新员工加入公司时,您都必须记住部门通常会获得哪些角色。然后确保在设置他们的网站帐户时勾选这8个复选框。

如果您有群组概念,则可以为每个部门设置一个“群组”,作为部门员工通常获得的角色的逻辑分组。然后你可以将新的员工添加到一个组中。

是否有任何开箱即用的实现已经可以节省我写自己的了?

1 个答案:

答案 0 :(得分:3)

我认为你想要的模型基本上就像mine here,不是吗?我的角色只是一个用户组,授权由AccessRule控制。

enter image description here

我的方法的优势在于您根本不需要实现自定义RoleProvider,因为它显然保持不变。 ASP.NET不需要知道我在另一端增强了它。我还实现了一个模板函数,该函数可以使用另一个角色作为模板来创建新角色。这是其他AccessRules(或您的默认角色)的Role列表。我不需要使用IsInRole来检查授权。我已经实现了自己的hasAccess方法,该方法检查用户是否属于具有给定AccessRule的角色(例如,DeleteXY)。