0

我有像管理员、用户这样的站点角色,这很好。

但是假设我有一个合法的申请(或任何类似的申请)。我有一个名为Case. 现在,我可以有很多案例,但并非所有用户都应该有权访问任何特定案例。假设 Fred 和 Tom 应该有权访问 Case1,但只有 Gina 和 Rebecca 应该有权访问 Case2?

很简单,对吧?我们有案例,用户可以属于一个案例。这是第一部分。第二部分是如何拥有“案例角色”,因此 Fred 可以成为 Case1 的“管理员”并且能够进行重大更改,但也许 Tom 只是 Case1 的“用户”并且只能做一些小事并且具有只读权限访问等

我知道我可能需要实现自定义属性等,但我在 Web 上找不到这种特殊事物的任何示例。但我想这在大多数业务应用程序中一定很常见。(如 Basecamp 或 Highrise 等)

更新让我举一个不同的例子:

以像 Basecamp 这样的项目管理软件即服务应用程序为例。用户可以创建“项目”。然后该用户可以邀请其他用户加入她的“项目”。但是,创建用户可以为每个用户分配不同的权限到她的项目。基本问题是如何在 ASP.NET MVC 中做这种事情。

4

1 回答 1

0

我从您的问题中了解到,每个案例都是一个实体(数据库中的一行),并且您希望将不同案例(实体)的不同访问权限分配给不同的角色。在这种情况下,您可以拥有一个超级管理员角色,将案例的访问权限分配给其他角色。基于此信息,您可以编写自定义 atuhorize 属性并获取超级管理员授予当前从数据库中登录的用户/角色的权限,并根据此标准做出决定。此外,创建案例的访问权限是通用的,因为在创建之前它不存在,因此任何有权创建案例的人都可以创建任何案例(无论是 case1 还是 case49)。创建案例后,该案例的权限也可以由案例的创建者设置。

于 2011-04-06T19:16:32.437 回答