【发布时间】:2009-09-02 12:43:38
【问题描述】:
我想创建一个拥有不同用户的网站。用户可以有不同的角色,管理员和用户,这是一个非常有据可查的情况。但我还想根据他们的位置对用户进行分组,所以在每个位置我都可以同时拥有管理员和用户。 - 多维角色系统?
原因是,德国用户应该可以访问特定的文档集,而意大利用户不应该。
我应该在哪里查找有关此特定主题的文档?我需要一些方法来限制我的搜索,也许是一些关键字。
【问题讨论】:
我想创建一个拥有不同用户的网站。用户可以有不同的角色,管理员和用户,这是一个非常有据可查的情况。但我还想根据他们的位置对用户进行分组,所以在每个位置我都可以同时拥有管理员和用户。 - 多维角色系统?
原因是,德国用户应该可以访问特定的文档集,而意大利用户不应该。
我应该在哪里查找有关此特定主题的文档?我需要一些方法来限制我的搜索,也许是一些关键字。
【问题讨论】:
另一种方法是添加另一组角色,对应于可用的不同位置,例如Germany 和Italy。然后,您将 所有 德国用户设为 Germany 角色的成员,并将德国管理员设为 Germany 和 Admin 的成员。检查权限时,您会同时检查 Admin 和当前语言环境。
请记住,一个用户可以有多个角色。
【讨论】:
User.IsInRole("Germany") && User.IsInRole("Germany.Admin")。您必须为每个国家/地区创建角色,但如果您遵循特定格式,您始终可以知道用户在哪里以及他们拥有什么权限。
首先请看4GuysFromRolla上非常优秀的系列教程:http://aspnet.4guysfromrolla.com/articles/120705-1.aspx
其次,内置的 Role Provider 非常简陋。您将用户与字符串(角色)相关联,仅此而已。没有与角色关联的层次结构或其他属性,除非您将其打包到字符串(角色名称)中。
【讨论】:
您可能想查看自定义配置文件属性。 MSDN
【讨论】: