如何使用组成员身份来限制结果?

时间:2016-12-30 17:00:32

标签: asp.net-mvc permissions access

在MVC应用程序中,对于所有用户都有权执行的给定操作,我想根据用户的组成员身份过滤结果。例如......

  • GroupA中的用户只能看到与BuildingX有关的记录。
  • GroupB中的用户只能看到与BuildingY相关的记录。
  • GroupC中的用户应该看到所有记录。

使用授权过滤器限制对Actions的访问没有问题,但是我很难找到如何限制对数据的访问,而不是在数据的每个地方显式修改语句被抓住了。

2 个答案:

答案 0 :(得分:0)

假设您的记录位于数据库中,角色成员资格模型不会扩展到开箱即用的数据库。您可以为数据库构建基于角色的访问控制,但使用更简单的方法可以节省时间。例如,在控制器中使用这样的代码:

if (Roles.IsUserInRole("GroupA")) {
 // Get data for GroupA.
}

// Display data...

答案 1 :(得分:0)

一年后,在different but related issue上工作,我找到了EntityFramework.DynamicFilters套餐,它完全符合我的需要!