У меня есть wsdl из веб-службы, я создал wcf-прокси. Нет проблем.
Но я не могу понять, как передать имя пользователя и пароль. Для веб-службы требуется базовая аутентификация - только имя пользователя и пароль.
Любая помощь?
У меня есть wsdl из веб-службы, я создал wcf-прокси. Нет проблем.
Но я не могу понять, как передать имя пользователя и пароль. Для веб-службы требуется базовая аутентификация - только имя пользователя и пароль.
Любая помощь?
Является ли обычная проверка подлинности настроенной в файле конфигурации? Вам нужно передать только учетные данные или вам нужен безопасный транспорт (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 = "...";
Это должно охватывать его: http://msdn.microsoft.com/en-us/library/ms733775.aspx (См. Раздел "Клиент" )
Я бы сказал, что это зависит от того, как веб-служба ожидает, что вы передадите эту информацию. В конце концов, вы только потребитель.
Сказав, что обычным является то, что веб-службы имеют идентификатор пользователя и пароль, переданные в заголовке 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>