asp.net会员/角色提供者问题

时间:2009-09-08 21:09:15

标签: asp.net roles provider

我的应用程序需要为不同的团队提供不同级别的保护。例如,某人可能是一个团队的管理员,但可能只是另一个团队的观众。

理想情况下,我希望拥有一组很小的角色,但我希望为每个团队分配人员角色。即“Joe”可能是TeamA的管理员,但对TeamB具有Reader访问权限。

Asp.Net提供程序框架是否支持此功能?

- 亚光

更新:我的问题是“IsInRole”方法。它需要一个参数。除了黑客攻击(将两个项目连接在一起,比如团队ID和角色名称)还有其他方法可以解决这个问题吗?

2 个答案:

答案 0 :(得分:1)

据我所知,RoleProvider类的工作方式没有角色组,但没有理由不在数据源中实现分组结构。但是,RoleProvider确实支持不同的应用程序名称,因此可以使用它来提供一种将应用程序分段为逻辑组的方法,这些逻辑组被标识为不同,因此分配了不同的角色。

修改

为了响应您的编辑,您可以在数据库中使用以下结构

Group Table           Access Table           Role Table
id | name             id | name              group_id | access_id | name
-----------           ------------           ---------------------------
1    Team A           1    Guest              1          1         Team A Guest
2    Team B           2    User               1          2         Team A User
                      3    Admin              1          3         Team A Admin

有一种机制可以在插入新行时更新name表中的Role字段。

实现自定义RoleProvider非常简单。您只需继承RoleProvider并覆盖所需的方法,编写RoleProvider应从中获取数据的逻辑。

答案 1 :(得分:0)

不是开箱即用的。您需要创建自定义提供程序以支持此功能

这是创建自定义成员资格提供程序的示例 http://www.asp.net/learn/videos/video-189.aspx