我正在为我目前面临的挑战寻找一些意见。
我已经构建了一个自定义 WIF STS,我用它来识别想要调用我的系统提供的某些 WCF 服务的用户。WCF 服务使用自定义授权管理器来确定调用者是否具有调用给定服务所需的声明。
现在,我正在构建一个 WPF 应用程序。在这些 WCF 服务之上。我正在使用 MVVM 模式,以便视图模型调用受保护的 WCF 服务(实现模型)。我面临的挑战是我不知道当前用户是否可以成功调用 Web 服务方法而不实际调用它们。基本上,我想要实现的是基于成功调用方法的能力启用/禁用 UI 的某些部分。
到目前为止,我提出的最佳解决方案是创建一个服务,该服务基于与自定义授权策略管理器相同的业务逻辑,将能够确定用户是否可以调用给定方法。现在,该方法必须作为一个字符串传递给该服务,或者实际上是两个字符串,ServiceAddress 和 Method (Action),并且基于该输入,该服务将能够确定当前用户是否具有访问所需的声明方法。显然,要使其工作,该服务本身必须需要来自相同 STS 并具有相同声明的已发行令牌才能完成其工作。
你们中的任何人过去有没有做过类似的事情,或者你们对如何做到这一点有什么好主意?
提前致谢,
克劳斯