如何允许用户将不同的站点功能分配给asp.net角色提供程序中的不同角色?

如何允许用户将不同的站点功能分配给asp.net角色提供程序中的不同角色?,asp.net,roleprovider,Asp.net,Roleprovider,我正在讨论是否要编写自己的身份验证类。几乎完成了,但我认为使用角色提供程序(自定义或默认)可能更好。我知道您可以将用户分配到角色,然后根据当前角色向用户显示信息。但是,如果要根据任务分配权限,该怎么办?例如,有时我希望编辑角色能够修改其他人的帖子,但有时我不希望。这是一个简单的情况,但我希望有一个更细粒度的授权级别,而不是拥有大量的角色(编辑、编辑所有帖子等)。这是否可以使用自定义asp.net角色提供程序实现,还是我应该继续完成我自己的系统?如果您能澄清以下内容,我不完全确定您的意思: 例如,

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

如果您能澄清以下内容,我不完全确定您的意思:

例如,有时我希望编辑角色能够修改其他人的帖子,但有时我不希望。 您可以为用户分配多个角色。因此,我将有一个基本角色,然后逐步添加功能

编辑 调解人 管理 等等


一个用户可以属于这三个角色。

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

您需要找到/支持层次结构-我建议您使用此路线,而不是完全不同的路线,因为您将从中获得一些好处,例如与这些提供商合作的框架的其他方面(登录控制、授权/访问的配置设置等)

你真的想要这样的东西:

  • 用户角色-可以发布到论坛,可以编辑自己的帖子
  • 编辑角色-可以做任何用户可以做的事情,并且可以编辑其他帖子
  • 管理员角色-可以做任何编辑可以做的事情,以及其他管理员的事情
因此,如果用户处于编辑角色,他们将自动获得作为用户的权限,等等

那么您的选择是:

  • 为每个论坛复制这些角色,为其分配用户等
  • 在用户配置文件中添加几个属性,比如“ForumEdit”和“ForumAdmin”,并在其中存储他们可以编辑/管理的论坛列表
  • (1)的优点是,您只需进行一次检查,查看用户是否可以执行管理/编辑任务,但管理所有这些角色的开销更大

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


    类似的答案。

    假设我有两个论坛,在一个论坛中,用户可以编辑其他人的帖子,但在另一个论坛中,用户只能编辑自己的帖子。现在我需要两个角色。当我添加新用户时,我需要添加每个角色。我可能会增加20个角色。。。是否仍然可以将用户角色分配给用户组?