【问题标题】:WCF Custom Header does not Appear in ServiceWCF 自定义标头未出现在服务中
【发布时间】:2010-12-21 02:56:03
【问题描述】:

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

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

【问题讨论】:

  • 一些代码会有所帮助...

标签: wcf custom-headers


【解决方案1】:

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

【讨论】:

  • 谢谢。这是一个很好的解决方案,但不适用于我的情况。在执行 AfterReceiveRequest 之前我需要标头。我在 authenticationManager 中需要它。我想通了为什么我没有看到我的自定义标题(我把相关细节排除在我的问题之外)。我正在使用安全设置为消息的 WS 绑定。这需要对自定义标头进行签名。我还不确定如何做到这一点。我怀疑它是通过 MessageContract 完成的。但是当我关闭消息安全时,我可以看到我的标题。
猜你喜欢
  • 1970-01-01
  • 2021-08-03
  • 1970-01-01
  • 1970-01-01
  • 2019-12-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-06-22
相关资源
最近更新 更多