Сценарий: я пишу клиент WCF для доступа к веб-сервису Java / Metro, который требует подписи и шифрования нескольких заголовков 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, однако, подписаны , но не зашифрованы .
Я пытался программно добавить их в коллекцию (и) частей сообщений ChannelProtectionRequirements
с помощью контракта или поведения конечной точки (например, как описано здесь ). Безуспешно.
Есть идеи, как это сделать?