假设我们有一个文档实体:
public class Document
{
public Guid Id { get; set; }
public string Title { get; set; } // can be viewed and changed by employee & manager
public decimal Fee { get; set; } // can be viewed and changed by manager only
}
该文档包含两个授权角色:雇员和经理。在我们的方案中,员工对Title字段具有读/写访问权限,而经理对Title和Fee字段均具有读/写访问权限。
我可以为员工和经理创建两个不同的写操作,并将不同的模型传递给他们。因此,我可以在现成的ASP.NET Core中使用基于角色的授权。
同时,我可以执行一个写操作,并处理该用户被授权写每个字段的权限。
我在项目中遇到了上面的第二个选项,它导致了复杂的代码。这是否意味着设计不好?
您是否不将授权应用于视图模型。因此,对员工隐藏“费用”字段及其更改权限的能力。