我已经实现了一个WCF服务,该服务公开了Windows窗体客户端使用的操作。在服务中,我使用基于声明的授权和自定义AuthorizationPolicy,在操作代码运行之前,我在其中插入基于主体标识的自定义Claimset。然后,操作需要在Claimset中进行某些声明才能运行。
因此,鉴于此,在客户端获取自定义索赔集的最佳方法是什么?我需要这样,以便客户端可以根据授权策略执行启用或禁用按钮等操作。理想情况下,客户端在调用任何操作之前需要此信息(如表单加载)。那么我是否创建一个特殊操作来返回一个Claimset对象,该对象填充了客户端可用于UI决策的Claims?还是有一些更好的内置模式?
答案 0 :(得分:1)
我们这是对服务器的两次调用。
第一个是:用户是否拥有权利。在我们的案例中,我们发送一个权利列表,并获得一个列表,其中每个“权利”标记为真或假。
客户端使用此信息绘制UI。
当实际来电进入时,我们会重新检查用户是否有权拨打电话,以防有人通过用户界面。