Веб-служба, к которой мне нужно подключиться, имеет вышеуказанное требование. Я могу использовать этот веб-сервис в VS 2008, но не могу использовать его, потому что я не знаю, как проходить аутентификацию. Мне нужно указать учетные данные, однако не существует метода "заголовка". Я пробовал что-то вроде следующего:
UltraDNSWebReference.UltraWebServiceService clientProxy =
new UltraDNSWebReference.UltraWebServiceService();
clientProxy.Credentials = new System.Net.NetworkCredential(
"MyUserName", "MYPassword");
но я все еще получаю ошибку аутентификации. Я могу успешно подключиться, используя платформу тестирования SOAPUI, поэтому я знаю, что это неверные учетные данные или заблокированный IP-адрес.
Этот API-интерфейс WebService гласит:
Neustar Ultra Services API
аутентифицирует пользователя и запрашивает
маркер WSSE UserName в SOAP
заголовок.
Могу ли я использовать этот веб-сервис в Visual Studio ???
Я пытался добавить ссылку на сервис. Я могу успешно использовать WSDL и создать объект, но не знаю, как обеспечить аутентификацию. Например, я пробовал следующее:
//Create client object
ServiceReference1.UltraDNSClient client = new ServiceReference1.UltraDNSClient();
client.ClientCredentials.UserName.UserName = "myUserName";
client.ClientCredentials.UserName.Password = "myPassword";
Итак, выше у меня есть мой клиентский объект, и у этого объекта есть доступ ко всем методам в API. Тем не менее, я не могу использовать какие-либо методы, потому что я не прошел проверку подлинности. API не предоставляет какой-либо метод типа header (). Например, для другого веб-сервиса, который я использую (и да, он использовал Add Web Reference, но концепция осталась прежней):
//Use the Web Reference to create the header object
StockLogoWebService.Header headerObject = new StockLogoWebService.Header();
//Assign the username (Username is all Xignite requires for authentication)
headerObject.Username = "janedoe@yahoo.com";
//Assign this header to the proxy object
xLogogsTest.HeaderValue = headerObject;
//Use any exposed methods
xLogosTest.anyMethod()
Выше я использовал метод header (), чтобы указать свои учетные данные. Если WSDL не предоставляет метод заголовка и просто заявляет, что учетные данные должны быть указаны в заголовке SOAP, как это сделать в Visual Studio?
WSDL можно найти по адресу:
http://ultra -api.ultradns.com: 8008 / UltraDNS_WS * 1026 WSDL *