Я пытаюсь реализовать интеграцию службы SOAP в проект WPF - C #. Я использовал файл .wsdl
как ссылку на сервис в проекте. Я использовал SoapUI
для тестирования и смог получить ответ после установки:
- Конечная точка
- Имя пользователя
- Пароль
- WSS-Тип
Мне нужно установить тип WSS: PasswordText
. Если я оставлю WSS-тип пустым в SoapUI
, я получу обратно:
Заголовок WS-Security не найден
Я сейчас пытаюсь получить ответ через C #, но я не знаю, где и как установить WSS-тип в C #.
Вот мой код на C #:
MyClient mainClient = new MyClient();
object myRequestObject = ...
// Client Credentials
mainClient.ClientCredentials.UserName.UserName = "Username";
mainClient.ClientCredentials.UserName.Password = "Password";
using (new OperationContextScope(mainClient.InnerChannel))
{
SoapAuthenticationHeader.Create(mainClient.ClientCredentials.UserName.UserName, mainClient.ClientCredentials.UserName.Password);
object mainResponse = mainClient.GetResponse(myRequestObject);
}
public static class SoapAuthenticationHeader
{
public static void Create(string theUsername, string thePassword)
{
try
{
// Add a HTTP Soap Header to an outgoing request
string authorization = "Basic " + Convert.ToBase64String(Encoding.Default.GetBytes(theUsername + ":" + thePassword));
HttpRequestMessageProperty requestMessage = new HttpRequestMessageProperty();
requestMessage.Headers.Add("Authorization", authorization);
OperationContext.Current.OutgoingMessageProperties[HttpRequestMessageProperty.Name] = requestMessage;
}
catch (Exception ex)
{
MessageBox.Show("Error at 'Create'" + Environment.NewLine + Environment.NewLine + ex.Message, "Error", MessageBoxButton.OK, MessageBoxImage.Error);
}
}
}
В настоящее время я получаю сообщение об ошибке:
HTTP-запрос не авторизован с помощью схемы аутентификации клиента 'Anonymous'. Заголовок аутентификации, полученный от сервера, был 'Basic realm = "Spring Security Application".
Удаленный сервер возвратил ошибку: (401) Unauthorized.
Я также пыталсяиспользование .wsdl
в качестве веб-ссылки, но не повезло и в настройке учетных данных.
Любая помощь / совет будут оценены.