Как зашифровать заголовки WS-адресации - PullRequest
2 голосов
/ 25 февраля 2011

Сценарий: я пишу клиент 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 с помощью контракта или поведения конечной точки (например, как описано здесь ). Безуспешно.

Есть идеи, как это сделать?

1 Ответ

1 голос
/ 28 февраля 2011

Хорошо, вретище и пепел. Я не уверен, что пошло не так в моих тестах, но работает , когда я добавляю соответствующие заголовки в IncomingSignatureParts и IncomingEncryptionParts конечной точки службы через поведение контракта.

...