在ASP.NET Web应用程序中合并组织单位和业务角色

时间:2010-07-20 16:35:33

标签: asp.net roles access-control roleprovider

在企业业务的实际企业Web应用程序中,我们始终需要限制用户单位和角色对数据的访问。

  

考虑到我们在一个国家拥有一家拥有许多购物商店的企业公司   因此,该公司拥有总部,可以查看所有分支机构的所有发票和统计数据。该国的每个地区都为自己的分支机构管理和规划区域销售策略。然后该地区的用户也可以看到由其分支机构创建的所有发票。每个分支都可以创建发票,客户,并仅查看其数据。

我们可以看到我们有两个主要的访问控制定义:

1-角色(多年前就已经考虑并实施了!):我们可以轻松实现使用RoleProvider并在UI级别控制访问控制(web.config和sitemap.config)

2-单位及其与拒绝/授予用户访问更新/查看数据的角色的关系。

我在ASP.NET中实现了一个自定义主体来获取用户的单元和角色,但我认为应该有一个经典的解决方案......

1 个答案:

答案 0 :(得分:0)

检查这些:

http://netsqlazman.codeplex.com/discussions/352107

http://lostechies.com/derickbailey/2011/05/24/dont-do-role-based-authorization-checks-do-activity-based-checks/

这是我的解释。

http://granadacoder.wordpress.com/2010/12/01/rant-hard-coded-security-roles/

............

MembershipProvider基于ROLES,....这适用于您孩子的足球俱乐部......不是专业的DotNet应用程序。

有一个“中间立场”的解决方法。

http://www.lhotka.net/weblog/CommentView,guid,9efcafc7-68a2-4f8f-bc64-66174453adfd.aspx

基本上。使用MembershipProvider ......但将单词/短语“Role”视为“Right”。 (在你的想法中......你当然不能改变MS代码中对象的名称)

洛基的坚果(来自上面的网址)

bool result = currentPrincipal.IsInRole(requiredPermission);