在客户端,我需要向我进行的每个服务调用传递一条信息(在此示例中,我们说一个字符串)。服务使用此字符串(currentRole)以及用户/通过凭证来检索与其当前角色相关联的用户声明集。
到目前为止,我遇到的解决方案是:
1)修改消息头,使其从客户端发出,并验证消息头在服务端。
2)使用自定义凭据,据我所知,该凭据也需要自定义安全 token 来存储字符串。
我还缺少其他任何方法,例如仅将该信息添加到现有 token /凭证中吗?上面提到的解决方案是否有优点/缺点?
谢谢。
最佳答案
您还可以编写一个客户端行为,将此 header 添加到消息中(这样就不必考虑自己在代码中进行操作了)。
您可以实现IClientMessageInspector
,并在BeforeSendRequest
方法覆盖中添加消息 header 。当您将此行为添加到每个客户端端点时,它将自动将该消息 header 添加到每个外发消息中。
有关某些入门信息,请参见此CodeProject article;有关其他更深入的专门知识,请参见此blog post。
马克
关于wcf - WCF通过所有服务调用传递额外的安全性数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1433885/