0

我正在争论是否要编写自己的身份验证类。几乎完成了,但我认为使用角色提供程序(自定义或默认)可能会更好。我知道您可以将用户分配给角色,然后根据当前角色向用户显示信息。但是,如果您想根据任务分配权限怎么办?例如,有时我希望编辑角色能够修改其他人的帖子,但有时我不这样做。这是一个简单的情况,但我希望获得更细粒度的授权,而不是拥有大量角色(编辑、编辑所有帖子等)。这是否可以使用自定义 asp.net 角色提供程序,或者我应该继续完成我自己的系统吗?

4

2 回答 2

2

基本的 ASP.NET 角色提供程序是平面结构的——因此用户需要属于他们所属的所有角色。

您将需要找到/编写一个支持层次结构的角色提供程序 - 我会推荐这条完全不同的路线,因为您将从中获得一些好处,例如与这些提供程序一起使用的框架的其他方面(登录控件、配置授权/访问等设置)。

你真的想要这样的东西:

  • 用户角色 - 可以发帖到论坛,可以编辑自己的帖子。
  • 编辑角色 - 可以做任何用户可以做的事情,并且可以编辑其他帖子。
  • 管理员角色 - 可以做任何编辑可以做的事情,以及其他管理事务。

因此,如果用户处于 Editor 角色,他们将自动获得用户权限,等等。

那么您的选择是:

  1. 为每个论坛复制这些角色,将用户分配给他们等。
  2. 将几个属性添加到您的用户配置文件中,例如“ForumEdit”和“ForumAdmin”,并在其中存储他们能够编辑/管理的论坛列表。

(1) 的优点是您只需要进行一次检查即可查看用户是否可以执行管理/编辑任务,但管理所有这些角色的开销更高。

(2) 的优点是易于管理角色,您可以从 editors 组中删除用户,例如,他们会失去所有编辑权限,但您需要更高的成本来确定他们是否真的是该组的编辑论坛,因为您需要查询他们的个人资料。

与此类似的答案真的在这里

于 2009-08-27T12:50:35.850 回答
0

我不完全确定你的意思,如果你能澄清一下:

例如,有时我希望编辑角色能够修改其他人的帖子,但有时我不这样做。

您可以为用户分配多个角色。所以我会有一个基础角色,然后逐步添加功能

编辑版主管理员等

一个用户可以同时属于这三个。

于 2009-02-16T10:21:40.907 回答