Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/312.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 我应该如何将用户与域对象关联?_C#_Asp.net_Asp.net Membership_Asp.net Roles - Fatal编程技术网

C# 我应该如何将用户与域对象关联?

C# 我应该如何将用户与域对象关联?,c#,asp.net,asp.net-membership,asp.net-roles,C#,Asp.net,Asp.net Membership,Asp.net Roles,我想使用内置的ASP.NET成员资格和角色提供程序来创建一个系统,该系统限制每个经过身份验证的用户可以查看和编辑的内容 软件已经有了“项目”和“组”的概念。每个项目都属于一个组 实际上,系统的用户属于同一组。这目前未在我的域模型中表示 我想为这些用户扩展两个级别的权限:查看和编辑。如果他们在一个组中,我希望他们能够查看该组中的项目。如果他们对该组具有编辑权限,我希望他们能够编辑该组的项目 用户通常属于一个组,但有时可能属于多个组。用户可能拥有多个组的查看权限,但只能查看其中一个(或某些)组的编辑

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

软件已经有了“项目”和“组”的概念。每个项目都属于一个组

实际上,系统的用户属于同一组。这目前未在我的域模型中表示

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

用户通常属于一个组,但有时可能属于多个组。用户可能拥有多个组的查看权限,但只能查看其中一个(或某些)组的编辑权限

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

最终,我想实现特权检查,这与Steve Smith在这里的博客中所说的有些类似:


感谢您提供的任何意见

我将创建一个自定义成员资格和角色提供程序来实现这一点,并包装您所指的安全组件。我只会使用成员资格和角色提供来满足您所需的最低要求,而不是依赖它来保证整个应用程序的安全

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

从长远来看,角色提供者对您的需求限制太多