我正在争论是否要编写自己的身份验证类。几乎完成了,但我认为使用角色提供程序(自定义或默认)可能会更好。我知道您可以将用户分配给角色,然后根据当前角色向用户显示信息。但是,如果您想根据任务分配权限怎么办?例如,有时我希望编辑角色能够修改其他人的帖子,但有时我不这样做。这是一个简单的情况,但我希望获得更细粒度的授权,而不是拥有大量角色(编辑、编辑所有帖子等)。这是否可以使用自定义 asp.net 角色提供程序,或者我应该继续完成我自己的系统吗?
Shawn
问问题
498 次
2 回答
2
基本的 ASP.NET 角色提供程序是平面结构的——因此用户需要属于他们所属的所有角色。
您将需要找到/编写一个支持层次结构的角色提供程序 - 我会推荐这条完全不同的路线,因为您将从中获得一些好处,例如与这些提供程序一起使用的框架的其他方面(登录控件、配置授权/访问等设置)。
你真的想要这样的东西:
- 用户角色 - 可以发帖到论坛,可以编辑自己的帖子。
- 编辑角色 - 可以做任何用户可以做的事情,并且可以编辑其他帖子。
- 管理员角色 - 可以做任何编辑可以做的事情,以及其他管理事务。
因此,如果用户处于 Editor 角色,他们将自动获得用户权限,等等。
那么您的选择是:
- 为每个论坛复制这些角色,将用户分配给他们等。
- 将几个属性添加到您的用户配置文件中,例如“ForumEdit”和“ForumAdmin”,并在其中存储他们能够编辑/管理的论坛列表。
(1) 的优点是您只需要进行一次检查即可查看用户是否可以执行管理/编辑任务,但管理所有这些角色的开销更高。
(2) 的优点是易于管理角色,您可以从 editors 组中删除用户,例如,他们会失去所有编辑权限,但您需要更高的成本来确定他们是否真的是该组的编辑论坛,因为您需要查询他们的个人资料。
与此类似的答案真的在这里。
于 2009-08-27T12:50:35.850 回答
0
我不完全确定你的意思,如果你能澄清一下:
例如,有时我希望编辑角色能够修改其他人的帖子,但有时我不这样做。
您可以为用户分配多个角色。所以我会有一个基础角色,然后逐步添加功能
编辑版主管理员等
一个用户可以同时属于这三个。
于 2009-02-16T10:21:40.907 回答