在MVC中创建对象级权限

时间:2014-04-23 13:15:33

标签: asp.net-mvc entity-framework model

我试图在MVC中获得对象级权限。我已经看了很多,但只能找到3年以上的例子,我似乎无法让它发挥作用。

说我有2个型号:

public class Supplier
{
    public int Id { get; set; }
    public string Name { get; set; }
    public virtual ICollection<ApplicationUser> LinkedUsers { get; set; }
}

public class ApplicationUser : IdentityUser
{
    public string Id { get; set; }
    public virtual ICollection<Supplier> LinkedSuppliers { get; set; }
}

我也有我的权限。

public enum SupplierUserPermissions
{
    Edit = 1,
    View = 2,
}

每个ApplicationUser都可以链接到多个Suppliers,每个Supplier都可以链接到多个ApplicationUsers

实体框架已根据用户ID和供应商ID创建了一个包含FK的表格。

如何为每个用户创建对象级权限?例如,用户应该只能查看某些供应商,但也许他们可以编辑其他供应商。

我应该如何构建模型或如何最好地实现它?我非常确定基于标准角色的安全性不会因此而削减它,至少不是干净利落,或者我错了吗?

编辑:我使用ASP Identity 2进行身份验证。

1 个答案:

答案 0 :(得分:0)

可以使用全局过滤来实现此目的。 看看这个问题和答案 - &gt; making a global filter for entity framework

这应该为您提供如何实现实体框架的全局过滤的良好起点