客户端我需要将一条信息(对于这个例子让我们说一个字符串)传递给我所做的每个服务调用。服务使用此字符串 (currentRole) 以及用户/通行证凭据来检索与其当前角色相关联的用户声明集。
到目前为止,我遇到的解决方案是:
1)修改从客户端发出的消息头,并验证消息头在服务端。
2)使用自定义凭据,据我了解,该凭据还需要自定义安全令牌来存储字符串。
我还缺少其他方法吗,例如将该信息添加到现有令牌/凭证中?上面提到的解决方案有什么优点/缺点吗?
谢谢。
客户端我需要将一条信息(对于这个例子让我们说一个字符串)传递给我所做的每个服务调用。服务使用此字符串 (currentRole) 以及用户/通行证凭据来检索与其当前角色相关联的用户声明集。
到目前为止,我遇到的解决方案是:
1)修改从客户端发出的消息头,并验证消息头在服务端。
2)使用自定义凭据,据我了解,该凭据还需要自定义安全令牌来存储字符串。
我还缺少其他方法吗,例如将该信息添加到现有令牌/凭证中?上面提到的解决方案有什么优点/缺点吗?
谢谢。
您还可以编写一个客户端行为,将这个标头添加到消息中(这样您就不必考虑在代码中自己做)。
您可以实现一个IClientMessageInspector
并且在BeforeSendRequest
方法覆盖中,添加一个消息头。当您将此行为添加到每个客户端端点时,它会自动将该消息头添加到每个传出消息中。
有关一些入门信息,请参阅此CodeProject 文章,有关更深入的知识,请参阅此博客文章。
马克