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

问题描述 投票:0回答:2

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

  • GroupS中的用户只能看到与Building相关的记录。
  • B组中的用户只能看到与Building有关的记录。
  • GroupC中的用户应该看到所有记录。

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

asp.net-mvc permissions access
2个回答
0
投票

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

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

// Display data...

0
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.