Аутентификация работает в Web Reference, но не в Service Reference - PullRequest
0 голосов
/ 10 октября 2018

Я использую веб-сервис ASMX, который использует обычную аутентификацию, требующую «Имя пользователя» и «Пароль».Я пытался добавить службу как «Справочник службы» в Visual Studio.Я получаю следующее исключение:

HTTP-запрос не авторизован со схемой аутентификации клиента «Basic».Заголовок аутентификации, полученный от сервера, был 'Basic realm = "NTADMIN"

Однако, когда я добавляю сервис в качестве веб-ссылки, аутентификация начинает работать, и я получаю ответ.

Я хочу запустить код, добавив службу как «Ссылка на службу».

Код не работает (Ссылка на службу):

WOVServicesSoapClient client = new WOVServicesSoapClient();
client.ClientCredentials.UserName.UserName = "UserNameHere";
client.ClientCredentials.UserName.Password = "PasswordHere";
var response = client.GetDocuments(documentInput);

App.config для Не работающего кода (Ссылка на службу) ::

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <configSections>
  </configSections>
  <startup>
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
  </startup>
  <system.serviceModel>
    <bindings>
      <basicHttpBinding>
        <binding name="IWOVServicesSoap">
          <security mode="Transport">
            <transport clientCredentialType="Basic"  realm="NTADMIN">    </transport>
          </security>
        </binding>
        <binding name="IWOVServicesSoap1" />
      </basicHttpBinding>
    </bindings>
    <client>
      <endpoint address="https:/URLPART/WorkSite/services/IWOVServices.asmx"
        binding="basicHttpBinding" bindingConfiguration="IWOVServicesSoap"
        contract="WorkSite.IWOVServicesSoap" name="IWOVServicesSoap" />
    </client>
  </system.serviceModel>
</configuration>

Рабочий код (веб-ссылка):

IWOVServices obj = new IWOVServices();
obj.Credentials = new NetworkCredential("UserNameHere", "PasswordHere", "NTADMIN");
 var response = obj.GetDocuments(documentInput);
...