我正在开发一个系统,我们希望根据用户的角色限制显示给用户的信息的可用性。如何将.net成员身份角色分配给各个数据库记录
例如我有一个名为提交讨论EventType (ID, EventTypeDescription)
其中包含以下记录:
1, 'Basic Event'
2, 'Intermediate Event'
3, 'Admin Event'
我需要实现的是过滤返回的基于用户名(并因此角色)的记录登录的用户。例如,如果高级用户登录,他们将看到所有的事件类型,如果标准用户登录,他们将只能看到基本事件类型等。
理想情况下,id想以这种方式做到这一点,可以很容易地必要时扩展到其他表格。所以我想避免简单地向数据是用户上下文敏感的每个表添加“角色”字段。
一个想法,我想的是创造某种权限表像:
PermissionsTable
(
ID,
Aspnet_RoleId,
TableName,
PrimaryKeyValue
)
这有利用这显然不必使用表名称切换到加入到哪个表的缺点。
编辑: 在没有什么更好的建议,我会去与我提到的最后一个想法,但不是有表名场,我要规范化表名出它自己的表如下:
TableNames
(
ID,
TableName
)
UserPermissionsTable
(
ID,
Aspnet_UserId,
TableID,
PrimaryKeyValue
)
只是一个想法,但如果你有1个基本的,2个中间的,3个管理选项,那么你应该在这些数字之间加上一些空格,例如10 20 30,这样可以给你一些空间来在未来添加额外的代码。这可以让你按代码对表格进行排序,并测试(管理员)是否显示管理员级别或更少。 – rtpHarry 2010-04-30 10:01:17