如何加密WS-Addressing标头

时间:2011-02-25 15:12:43

标签: wcf webservice-client ws-security

场景:我正在编写一个WCF客户端来访问Java / Metro Web服务,该服务需要对多个SOAP头进行签名和加密:

<wsp:Policy>
  <wsp:ExactlyOne>
    <wsp:All>
      <sp:SignedParts>
        <sp:Body/>
        <sp:Header Namespace="http://www.w3.org/2005/08/addressing"/>
        <sp:Header Namespace="... application specific headers ..."/>
      </sp:SignedParts>
      <sp:EncryptedParts>
        <sp:Header Namespace="http://www.w3.org/2005/08/addressing"/>
        <sp:Header Namespace="... application specific headers ..."/>
      </sp:EncryptedParts>
    </wsp:All>
  </wsp:ExactlyOne>
</wsp:Policy>

它适用于特定于应用程序的标头(ProtectionLevel属性应用于相应的代理类型成员)。但是,WS-Addressing标头已签名但未加密

我尝试通过合同或端点行为(例如描述为here)以编程方式将它们添加到ChannelProtectionRequirements消息部分集合中。没有成功。

任何想法如何做到这一点?

1 个答案:

答案 0 :(得分:1)

好的,麻布&amp;灰烬即将来临。我不确定我的测试中出了什么问题,但是当我通过合同行为将相应的标题添加到服务端点的IncomingSignatureParts和IncomingEncryptionParts时,它确实