Я пытаюсь использовать веб-службу SAP в качестве ссылки на службу в оконной службе С#. Я продолжаю получать эту ошибку:
System.ServiceModel.Security.MessageSecurityException: HTTP-запрос неавторизован при использовании схемы аутентификации клиента «Анонимный». Заголовок аутентификации, полученный от сервера, был «Basic Realm="Сервер приложений SAP NetWeaver [SEQ/400]"». ---> System.Net.WebException: удаленный сервер возвратил ошибку: (401) Неавторизованный.
в System.Net.HttpWebRequest.GetResponse()
Я передаю имя пользователя и пароль в коде следующим образом:
ws.ClientCredentials.UserName.UserName = psUserName;
ws.ClientCredentials.UserName.Password = psPassword;
и мой раздел serviceModel
app.config
выглядит так:
<system.serviceModel>
<bindings>
<basicHttpBinding>
<binding name = "basicHttpBinding_MyWS">
<security mode = "Transport">
<transport clientCredentialType = "None" proxyCredentialType = "None" realm = "SAP NetWeaver Application Server [SEQ/400]"/>
<message clientCredentialType = "Certificate" algorithmSuite = "Default" />
</security>
</binding>
</basicHttpBinding>
</bindings>
<client>
<endpoint address = "https://myaddress/sap/somefunc" binding = "basicHttpBinding" bindingConfiguration = "basicHttpBinding_myWS" contract = "myWS.ServiceName" name = "basicHttpBinding_myWS" />
</client>
</system.serviceModel>
Я пробовал работать с разделом system.serviceModel
, но ничего из того, что предлагает Google, не работает. Есть ли у кого-нибудь предложения относительно того, почему это не работает? Конечная точка проверена. Спасибо!
Спасибо, Эсанджу, это решило проблему. Превратите это в ответ и я отмечу его как хороший.
Судя по сообщению об ошибке, ожидается clientCredentialType="Basic", но вы передали clientCredentialType="None"
Судя по сообщению об ошибке, ожидается clientCredentialType = "Basic", но вы передали clientCredentialType = "None". Вы можете проверить эту ссылку Microsoft Типы транспортных учетных данных