【发布时间】:2011-04-06 15:27:35
【问题描述】:
我有管理员、用户等站点角色,这很好。
但假设我有一个合法的申请(或任何类似的申请)。我有一个名为Case 的实体。现在,我可以有很多案例,但并非所有用户都应该有权访问任何特定案例。假设 Fred 和 Tom 应该有权访问 Case1,但只有 Gina 和 Rebecca 应该有权访问 Case2?
很简单,对吧?我们有案例,用户可以属于一个案例。这是第一部分。第二部分是如何拥有“案例角色”,因此 Fred 可以成为 Case1 的“管理员”并且能够进行重大更改,但也许 Tom 只是 Case1 的“用户”并且只能做一些小事并且具有只读权限访问等。
我知道我可能需要实现一个自定义属性等,但我在 Web 上找不到这种特殊事物的任何示例。但我想这在大多数业务应用程序中一定很常见。 (如 Basecamp 或 Highrise 等)
更新让我举一个不同的例子:
将项目管理软件作为服务应用程序,例如 Basecamp。用户可以创建“项目”。然后该用户可以邀请其他用户加入她的“项目”。但是,创建用户可以为每个用户分配不同的权限到她的项目。基本问题是如何在 ASP.NET MVC 中做这种事情。
【问题讨论】:
-
我只会为这些能力中的每一个创建角色。创建一个可以更新案例 1 的方法,并且只有管理员可以访问该方法。创建一个读取案例 1 的方法,并且只有用户/管理员可以访问该方法。至于 UI,您只需要创建多个 UI 元素并根据它们的角色显示和隐藏。
-
@Evan-Larsen,这如何解决基本问题?问题是用户可以创建案例。我无法对“Case1”或“Case2”进行硬编码。用户可能会创建“Case49”,然后希望将用户与其关联。另外,我不想只显示/隐藏案例的链接,因为如果用户尝试转到 /Case/1/Edit 或其他任何内容,并且不是该案例的正确用户级别,我不想允许它。
-
顺便说一句,我会接受答案。 :) 到目前为止,我提出的所有问题都没有任何提交的答案!这不是一个非常基本的事情吗?似乎几乎所有的商业应用都需要支持这样的东西。
标签: asp.net-mvc asp.net-membership authorization custom-authentication