WCF RIA服务授权

时间:2010-09-07 07:36:07

标签: wcf authorization roles wcf-ria-services

假设我们有两个组“Admins”和“Users”。管理员可以使用服务中可用的任何操作,但用户只能使用其中的一些操作。

我是否应该将“管理员”组添加到每个操作中,或者如果我只是在课堂上写它就可以了?

感谢。

2 个答案:

答案 0 :(得分:4)

多个RequiresRole属性与AND组合,而传递给单个属性的多个角色为OR。在您的情况下,您需要OR属性(“用户”或“管理员”),因此您必须对每个方法应用“管理员”。

//“管理员”&& “用户”,相当于使用“Admin”的类属性

[RequiresRole(“Admin”),RequiresRole(“User”)]

//“管理员”|| “用户”

[RequiresRole(“Admin”,“User”)]

答案 1 :(得分:0)

我遇到了同样的问题。不幸的是,你必须在每个方法上设置角色。或者,您可以使用saf-framework来实现基于访问的授权。

否则,我建议您覆盖域服务的BeforeSubmit()方法,并检查对象的访问权限,以避免每个方法的过多属性。

例如,您可能希望更改访问策略,而不想通过每种方法来执行此操作。