我有一个使用一些自定义 SOAP 标头的 WCF 服务。我设法传递了标头-但是我如何声明它们是强制性的,从而迫使客户端在每个请求中都传递它们?
谢谢!
您需要一个代码来验证您身边是否存在标题。您还需要一个将自定义标头添加到 WSDL 的代码,以便所有客户端都知道此标头。
这两个部分都可以通过MessageContract
定义标题和正文的位置来实现。如果您使用单一合同作为所有消息的基础,它应该可以工作,但您必须在每个操作中验证标头。
您还可以将与标头相关的代码移动到自定义行为,并在自定义消息检查器中添加/验证标头。在这种情况下,您还必须手动将标头的描述添加到 WSDL。这篇博客文章描述了整个过程。