2011-02-08 31 views
2

获得细粒度授权我想获得类似MSCRM授权:如何使用.NET

CRM Roles

在这个rappresentation我们看到:

  • 实体(市场营销列表,活动)
  • 允许操作(创建,读取,写入,删除,追加,追加到,分配,共享)
  • 范围(用户,业务部门, ation)

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

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

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

感谢

+0

什么版本?Fx4 – 2011-02-08 12:33:18

+0

框架.NET 4.0 – Ricibald 2011-02-08 16:32:47

回答

2

简短的回答:是的,你必须有64点的东西来表示他们的权限,64组无。

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

用户权限级别

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

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

  • 域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 

基本上,您分配给用户一个域的权限级别,并让安全权限只检查该域的级别。让我知道你是否需要实际的实施细节。