假设我们有两个组“Admins”和“Users”。管理员可以使用服务中可用的任何操作,但用户只能使用其中的一些操作。
我是否应该将“管理员”组添加到每个操作中,或者如果我只是在课堂上写它就可以了?
感谢。
答案 0 :(得分:4)
多个RequiresRole属性与AND组合,而传递给单个属性的多个角色为OR。在您的情况下,您需要OR属性(“用户”或“管理员”),因此您必须对每个方法应用“管理员”。
//“管理员”&& “用户”,相当于使用“Admin”的类属性
[RequiresRole(“Admin”),RequiresRole(“User”)]
//“管理员”|| “用户”
[RequiresRole(“Admin”,“User”)]
答案 1 :(得分:0)
我遇到了同样的问题。不幸的是,你必须在每个方法上设置角色。或者,您可以使用saf-framework来实现基于访问的授权。
否则,我建议您覆盖域服务的BeforeSubmit()方法,并检查对象的访问权限,以避免每个方法的过多属性。
例如,您可能希望更改访问策略,而不想通过每种方法来执行此操作。