Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/20.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
如何使用.NET获得细粒度授权_.net_Security_Roles - Fatal编程技术网

如何使用.NET获得细粒度授权

如何使用.NET获得细粒度授权,.net,security,roles,.net,Security,Roles,我想获得类似于MSCRM的授权: 在本演示中,我们看到: 实体(营销列表、活动) 允许的操作(创建、读取、写入、删除、附加、附加到、分配、共享) 范围(用户、业务单位、母公司、组织) 我有2个实体+8个允许的操作+4个作用域 我想在.NET应用程序中表示相同的情况我认为实现这一点的唯一方法是创建表示各种组合所需的所有组。在这个示例中,我需要使用RoleProvider中的方法在代码中处理2*8*4=64个组 这对我来说似乎有点奇怪。我缺少一些安全概念,或者说创建64个组是表示这种级别的可配

我想获得类似于MSCRM的授权:

在本演示中,我们看到:

  • 实体(营销列表、活动)
  • 允许的操作(创建、读取、写入、删除、附加、附加到、分配、共享)
  • 范围(用户、业务单位、母公司、组织)
我有2个实体+8个允许的操作+4个作用域

我想在.NET应用程序中表示相同的情况我认为实现这一点的唯一方法是创建表示各种组合所需的所有组。在这个示例中,我需要使用RoleProvider中的方法在代码中处理2*8*4=64个组

这对我来说似乎有点奇怪。我缺少一些安全概念,或者说创建64个组是表示这种级别的可配置性的唯一方法


谢谢

简短回答:是的,您必须有64件东西来表示其权限,64个组否

我们在我的公司开发的应用程序中使用了类似的模型,但我们有类似的东西

用户权限级别

  • 一级
  • 二级
  • 三级
  • 四级
应用程序域(人们可能需要不同权限的不同区块)

  • 域1
  • 域2
  • 领域3
  • 域4
然后,在“管理”部分,用户将获得分配的权限,如下所示:

        Domain 1    Domain 2   Domain 3   Domain 4
User A   Level 1    Level 4    Level 3     Level 3
然后在应用程序中,我们说

域1安全代码

If currentUser.Islevel1 Then
  YouCanDoIT();
Else
  WhyYouHereBro();
End

基本上,您为用户分配了一个域的权限级别,并且仅对该域的级别进行安全权限检查。如果您需要实际的实施细节,请告诉我。

什么版本?在Fx4nope中进行了很多更改,我决定使用自定义数据库解决方案和包装实用程序解决方案,但我认为这样做会更好!我不明白,您的解决方案是自定义管理还是使用.NET安全性?我的尝试是尽可能多地使用默认的.NET行为possible@Ricibald,它是一种混合体。我们设置了当前用户和其他用户,然后当我们查找IsLevel1(这是一个扩展方法)时,它会调用一些自定义代码。好的,但是在内部您已经在.NET中创建了“64个角色”?