2

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

理想情况下,我希望拥有一个单一的、一小组角色,但我希望将人员分配给每个团队的不同角色。即“Joe”可能是 TeamA 的管理员,但拥有 TeamB 的读者访问权限。

Asp.Net 提供者框架会支持这个吗?

——马特

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

4

2 回答 2

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 应从何处获取数据的逻辑。

于 2009-09-08T21:19:22.007 回答
0

不是直接开箱即用。您需要创建一个自定义提供程序来支持此功能

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

于 2009-09-08T21:15:47.497 回答