Вызов веб-службы, требующей базовой http-аутентификации от клиента wcf

У меня есть wsdl из веб-сервиса, я сгенерировал прокси wcf. Нет проблем.

Но я не могу понять, как передать имя пользователя и пароль. Веб-сервис требует базовой аутентификации - только имя пользователя и пароль.

Любая помощь?

15
задан Henk Holterman 16 August 2010 в 19:04
поделиться

3 ответа

Это должно быть покрыто: http://msdn.microsoft.com/en-us/library/ms733775.aspx (См. Раздел «Клиент»)

-1
ответ дан 1 December 2019 в 03:13
поделиться

Настроена ли в файле конфигурации обычная проверка подлинности? Вам нужно передать только учетные данные или вам также нужен защищенный транспорт (HTTPS)?

Сначала необходимо настроить привязку для поддержки базовой проверки подлинности

Настройка привязки HTTP:

<bindings>
  <basicHttpBinding>
    <binding name="BasicAuth">
      <security mode="TransportCredentialOnly">
        <transport clientCredentialType="Basic" />
      </security>
    </binding>
  </basicHttpBinding>
</bindings>

Настройка привязки HTTPS:

<bindings>
  <basicHttpBinding>
    <binding name="BasicAuthSecured">
      <security mode="Transport">
        <transport clientCredentialType="Basic" />
      </security>
    </binding>
  </basicHttpBinding>
</bindings>

Конечная точка клиента должна использовать определенную конфигурацию, например:

<client>
  <endpoint address="..." 
            name="..." 
            binding="basicHttpBinding" 
            bindingConfiguration="BasicAuth" 
            contract="..."  />
</client>

Затем вы должны передать учетные данные прокси:

proxy = new MyServiceClient();
proxy.ClientCredentials.UserName.UserName = "...";
proxy.ClientCredentials.UserName.Password = "...";
25
ответ дан 1 December 2019 в 03:13
поделиться

Я бы сказал, что это, скорее всего, будет зависеть от того, как веб-служба ожидает, что вы передадите информацию. В конце концов, вы всего лишь потребитель.

При этом обычным явлением для веб-сервисов является передача идентификатора пользователя и пароля в заголовке SOAP.

Вы можете обратиться к этой ссылке для примера реализации этого сценария

Пример сообщения мыла

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
  <soap:Header>
    <AUTHHEADER xmlns="http://tempuri.org/">
      <USERNAME>string</USERNAME>
      <PASSWORD>string</PASSWORD>
    </AUTHHEADER>
  </soap:Header>
  <soap:Body>
    <SENSITIVEDATA xmlns="http://tempuri.org/" />
  </soap:Body>
</soap:Envelope>
-1
ответ дан 1 December 2019 в 03:13
поделиться
Другие вопросы по тегам:

Похожие вопросы: