Как передать учетные данные пользователя веб-службе?

Я использую webservice, используя WSDL в приложении Windows. Когда я пытаюсь использовать метод, я получаю следующую ошибку: -

HTTP-запрос неавторизован с помощью схемы проверки подлинности клиента 'Anonymous'. Заголовок аутентификации, полученный с сервера, был "

{" Удаленный сервер ответил на ошибку: (401) Неавторизованный."}

У меня есть учетные данные пользователя, но я не знаю, как передать его с помощью кода С# в приложении Windows.

Ответ 1

Вот как он работает для меня: -

Настройка файла конфигурации выглядит так: -

<configuration>
    <system.serviceModel>
        <bindings>
          <basicHttpBinding>
            <binding name="bindingName"  >
              <security mode="TransportCredentialOnly">
                <transport clientCredentialType="Basic" proxyCredentialType="None" realm=""/>
                <message clientCredentialType="UserName" algorithmSuite="Default"/>
              </security>
            </binding>

          </basicHttpBinding>
        </bindings>
        <client>
            <endpoint address="http://10.10.10.10:1880/testpad/services/Testwebservice"
                binding="basicHttpBinding" bindingConfiguration="bindingName"
                contract=testService.GetData" name="test_Port1" />
        </client>
    </system.serviceModel>
</configuration>

и здесь я передаю учетные данные пользователя: -

 var ser = new GetDataClient();
 ser.ClientCredentials.UserName.UserName = "userid";
 ser.ClientCredentials.UserName.Password = "Pa$$word1";

Ответ 2

Вы можете попытаться генерировать свой прокси-сервер вашего сервиса, используя метод, упомянутый здесь. Если у вас есть экземпляр вашего прокси-сервера WCF, он будет иметь свойство ClientCreditials, которое вы можете заполнить по мере необходимости. Надеюсь, это поможет.