我正在讨论是否要编写自己的身份验证类。它几乎已经完成,但我认为使用角色提供程序(自定义或默认设置)可能会更好。我知道您可以将用户分配给角色,然后根据当前角色向用户显示信息。但是如果你想根据任务分配权限怎么办?例如,有时我想要编辑的角色能够修改其他人的帖子,但有时我不这样做。这是一个简单的情况,但我希望获得更细粒度的授权,而不是拥有大量的角色(编辑器,编辑所有帖子等)这是否可以使用自定义的asp.net角色提供程序,或者我应该继续完成自己的系统吗?
答案 0 :(得分:2)
基本的ASP.NET角色提供程序是扁平结构的 - 因此用户需要属于他们所属的所有角色。
您需要找到支持层次结构的/ write a role provider - 我建议这条路线完全不同,因为您将从中获得一些好处,例如与这些提供程序一起使用的框架的其他方面(登录控件,授权/访问的配置设置等。)
你真的想要这样的东西:
因此,如果用户处于编辑角色,则会自动为用户提供权限等。
然后你的选择是:
(1)的优点是您只需要检查一下用户是否可以执行管理/编辑任务,但是管理所有这些角色的开销更高。
(2)的优点是可以轻松管理角色,您可以从编辑器组中删除用户,例如,他们会失去所有编辑器权限,但您需要更高的成本来确定他们是否真的是该论坛的编辑,因为您需要查询他们的个人资料。
this one here really的类似答案。
答案 1 :(得分:0)
如果你能澄清的话,我不完全确定你的意思:
例如,有时我想要编辑器的角色能够修改其他人的帖子,但有时我不这样做。
您可以为用户分配多个角色。所以我会有一个基本角色,然后逐步添加功能
编辑器 主席 管理员 等
用户可以属于这三个人。