我试图在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进行身份验证。
答案 0 :(得分:0)
可以使用全局过滤来实现此目的。 看看这个问题和答案 - &gt; making a global filter for entity framework
这应该为您提供如何实现实体框架的全局过滤的良好起点