【发布时间】:2012-02-21 12:01:16
【问题描述】:
是否有任何预先存在的解决方案可以使用组成员的概念扩展 .NET 中的内置 SQL 成员资格提供程序和 Sql 角色提供程序。
现在角色关系看起来像
Users ====> UserRoles <=====Roles
我想把它扩展成看起来像
Users ====> UserGroups <==== Groups ====> GroupRoles <==== Roles.
假设您有一个包含 30 或 40 个不同角色的应用程序。每次有新员工加入公司时,您都必须记住该部门通常获得的角色集,然后确保在设置他们的网站帐户时勾选这 8 个复选框。
如果您有组概念,您可以为每个部门设置一个“组”,作为部门员工通常获得的角色的逻辑分组。然后您可以将新员工添加到单个组中。
是否有任何开箱即用的实现已经可用,可以节省我自己编写的时间?
【问题讨论】:
-
我假设你想要的模型基本上就像mine here,不是吗?我的
Role只是一个用户组,而授权由AccessRule控制。 -
确实如此。你的想法略有不同我想在用户和角色之间添加一个“组”......你已经制作了角色 == 组,并添加了 AccessRules,但概念看起来基本相同。我想以另一种方式这样做的唯一原因是能够仍然利用内置的提供程序方法,如
IsInRole()等。 -
我的方法的优点是您根本不需要实现自定义
RoleProvider,因为它显然保持不变。 ASP.NET 不需要知道我已经在另一端对其进行了增强。我还实现了一个模板功能,可以通过使用另一个角色作为模板来创建新角色。这是另一个Role(或您的默认角色)的AccessRules列表。我不需要使用IsInRole来检查授权。我已经实现了自己的hasAccess方法,该方法检查用户是否属于具有给定AccessRule(f.e. DeleteXY) 的角色。 -
蒂姆,由于没有其他人跟进,如果您想移动,请对答案发表评论,我会给您打勾
标签: c# asp.net membership-provider roleprovider