是否有任何预先存在的解决方案可以扩展内置的SQL Membership Provider& .NET中的SQL角色提供程序,具有组成员资格的概念。
现在角色关系看起来像是
Users ====> UserRoles <=====Roles
我想将其扩展为
Users ====> UserGroups <==== Groups ====> GroupRoles <==== Roles.
假设您有一个具有30或40个不同角色的应用程序。每次新员工加入公司时,您都必须记住部门通常会获得哪些角色。然后确保在设置他们的网站帐户时勾选这8个复选框。
如果您有群组概念,则可以为每个部门设置一个“群组”,作为部门员工通常获得的角色的逻辑分组。然后你可以将新的员工添加到一个组中。
是否有任何开箱即用的实现已经可以节省我写自己的了?
答案 0 :(得分:3)
我认为你想要的模型基本上就像mine here,不是吗?我的角色只是一个用户组,授权由AccessRule
控制。
我的方法的优势在于您根本不需要实现自定义RoleProvider
,因为它显然保持不变。 ASP.NET不需要知道我在另一端增强了它。我还实现了一个模板函数,该函数可以使用另一个角色作为模板来创建新角色。这是其他AccessRules
(或您的默认角色)的Role
列表。我不需要使用IsInRole
来检查授权。我已经实现了自己的hasAccess
方法,该方法检查用户是否属于具有给定AccessRule
的角色(例如,DeleteXY)。