Как добавить пользовательский заголовок к исходящей полезной нагрузке SOAP, используя подключенную службу? - PullRequest
0 голосов
/ 01 мая 2019

Мне нужно добавить пользовательский заголовок для каждой полезной нагрузки, отправляемой одной из подключенных служб в моих проектах с конечной точкой HTTPS.Этот пользовательский заголовок будет служить аутентификацией для получателя.Как я могу это сделать?

Я пытался использовать System.ServiceModel.Channels.MessageHeader и AddressHeader безуспешно.С SoapUI добавление пользовательского заголовка в запрос работает нормально.

Этот метод аутентификации является новым для получателя.Как и конечная точка HTTPS.В предыдущем запросе я использовал Basic Http Authentication с пользователем и паролем.Итак, я немного изменил это для поддержки кода привязки HTTPS:

BasicHttpsBinding basicAuthBinding = new BasicHttpsBinding(BasicHttpsSecurityMode.Transport);
basicAuthBinding.Security.Transport.ClientCredentialType = HttpClientCredentialType.Basic;

EndpointAddress basicAuthEndpoint = new EndpointAddress("https://whatever");
MyConnectedService.MyOperationClient client = new MyConnectedService.MyOperationClient(basicAuthBinding, basicAuthEndpoint);

client.ClientCredentials.UserName.UserName = "user";         
client.ClientCredentials.UserName.Password = "pass";

client.send(payload);

Я думаю, что где-то здесь мне нужно добавить пользовательский заголовок.

С этим кодом яполучаю ожидаемое HTTP 401 - Unauthorized.

Помощь оценена.

Заранее спасибо.

1 Ответ

0 голосов
/ 03 мая 2019

Если вы принимаете статический пользовательский заголовок, вы можете попробовать web.config (app.config).

 <endpoint address="http://ws-wuxipc-5077:4000/calculator" binding="basicHttpBinding"
  contract="ServiceInterface.CustomHeader" name="header">
  <headers>
    <Security xmlns="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" >
      <wsse:UsernameToken xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd"
        xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
        <wsse:Username>
        </wsse:Username>
        <wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordDigest">monMonDePasse</wsse:Password>
        <wsse:Nonce>sdsdsdlojhfdsdM5Nw==</wsse:Nonce>
        <wsu:Created>2019-01-21T6:17:34Z</wsu:Created>
      </wsse:UsernameToken>
    </Security>
  </headers>
</endpoint>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...