我应该如何将用户与领域对象联系起来

本文关键字:对象 联系 起来 用户 我应该 | 更新日期: 2023-09-27 18:03:45

我想使用内置的ASP。. NET成员和角色提供程序来创建一个系统,该系统限制每个经过身份验证的用户可以查看和编辑的内容。

软件已经有了"项"answers"组"的概念。每个项目属于一个组。

系统中的用户实际上属于同一个组。这目前还没有在我的领域模型中表达。

有两个级别的特权,我想扩展到这些用户,查看和编辑。如果他们在一个组中,我希望他们能够查看该组中的项目。如果他们对该组有编辑权限,我希望他们能够编辑该组的项目。

用户通常属于一个组,但有时可能属于多个组。用户可能对多个组拥有View权限,但只对他们可以查看的一个(或一些)组拥有Edit权限。

我不知道如何解决这个问题。我是否应该简单地为每个组创建2个角色(使用asp.net角色提供程序),即Group1View, Group1Edit等?还是应该创建另一个表,在aspnet_Users表和Groups表之间创建关系,并使用第三列标识它们的权限级别?

最后,我想实现一些类似Steve Smith在这里写的特权检查:http://stevesmithblog.com/blog/favor-privileges-over-role-checks/

感谢您提供的任何意见!

我应该如何将用户与领域对象联系起来

我将创建一个自定义成员资格和角色提供程序来实现这一点,并包装您引用的这个安全组件。我只会使用Membership和Role提供的服务来满足您需要的最小请求,而不会依赖于整个应用程序的安全性。

角色提供者不能很好地满足您对具有层次复杂性的自定义安全性的需求。您所提到的可以(使用名称)工作,并且自定义角色提供程序也可以从您所提到的组件派生用户访问的角色的名称。然而,我只会用它来处理内置的框架功能(登录控件,站点地图控件,或者你使用的任何东西),其他的都使用你自己的安全设置。

从长远来看,角色提供者最终会对您的需求限制太大。

HTH .