WCF自定义标头未显示在服务中

WCF自定义标头未显示在服务中,wcf,custom-headers,Wcf,Custom Headers,我想知道是否有人遇到这个问题,并有一个答案或指针。我实现了IClientMessageInspector,以便在客户端上向soap消息添加一个头。因此,在BeforeSendREquest中,我调用MessageHeader.CreateHeader。这似乎是可行的,因为我在Fiddler中看到的消息带有集合中的标题。在服务端,我有一个自定义authenticationManager。当服务调用进入实现时,我看不到插入的头。我感觉ServiceModel堆栈在反序列化过程中跳过了我的头,但不确定

我想知道是否有人遇到这个问题,并有一个答案或指针。我实现了IClientMessageInspector,以便在客户端上向soap消息添加一个头。因此,在BeforeSendREquest中,我调用MessageHeader.CreateHeader。这似乎是可行的,因为我在Fiddler中看到的消息带有集合中的标题。在服务端,我有一个自定义authenticationManager。当服务调用进入实现时,我看不到插入的头。我感觉ServiceModel堆栈在反序列化过程中跳过了我的头,但不确定。此外,如果真的发生了什么,我也不知道如何解决这个问题。也许可以在服务端实现IClientMessageInspector的等价物


任何想法/指针都会有帮助。

在服务器端WCF代码中,为了对来自客户端的SOAP头(由IClientMessageInspector插入)进行操作,我使用了IDispatchMessageInspector的一个实现。在其AfterReceiveRequest()方法中,我使用request.Headers.FindHeader()来查看预期的头是否存在。

一些代码可能会有所帮助……谢谢。这是一个很好的解决方案,但不是在我的情况下。在执行AfterReceiveRequest之前,我需要标题。我需要它在authenticationManager中。我弄明白了为什么我看不到我的自定义标题(我没有考虑相关细节)。我正在使用安全设置为message的WS-binding。这需要对自定义标头进行签名。到目前为止,我还不知道该怎么做。我怀疑这是通过一个合同完成的。但当我关闭消息安全性时,我可以看到我的标题。