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

时间:2011-02-08 12:26:03

标签: .net security roles

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

CRM Roles

在这种情况下,我们看到:

  • 实体(营销列表,广告系列)
  • 允许操作(创建,读取,写入,删除,追加,追加,分配,共享)
  • 范围(用户,业务部门,家长,组织)

我有2个实体+ 8个允许操作+4个范围。

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

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

由于

1 个答案:

答案 0 :(得分:2)

简短回答:是的,您必须有64件事来表明他们的权限,64组没有。

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

用户权限级别

  • 等级1
  • 等级2
  • 等级3
  • 等级4

应用程序域(人们可能需要不同权限的不同块)

  • Domain 1
  • 域名2
  • Domain 3
  • Domain 4

然后在admin部分为用户分配权限,如下所示:

        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

基本上,您为用户分配域的权限级别,并使用“安全性”权限仅检查该域的级别。如果您需要实际的实施细节,请告诉我。