1

在企业业务的真实世界企业 Web 应用程序中,我们总是需要通过用户的单位和角色来限制对数据的访问。

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

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

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

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

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

4

1 回答 1

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 ......但将单词/短语“角色”视为“正确”。(在你的脑海里..你当然不能在 MS 代码中更改对象的名称)

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

布尔结果 = currentPrincipal.IsInRole(requiredPermission);

于 2012-04-20T13:26:06.133 回答