场景:我正在编写一个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
消息部分集合中。没有成功。
任何想法如何做到这一点?
答案 0 :(得分:1)
好的,麻布&amp;灰烬即将来临。我不确定我的测试中出了什么问题,但是当我通过合同行为将相应的标题添加到服务端点的IncomingSignatureParts和IncomingEncryptionParts时,它确实。