Вызов C# SOAP для проблемы аутентификации службы KelioC#

Место общения программистов C#
Ответить
Anonymous
 Вызов C# SOAP для проблемы аутентификации службы Kelio

Сообщение Anonymous »

Мне нужно подключить службу Bodet KELIO SOAP из приложения C#.
Документация по подключению службы находится здесь:
https://kelio.help.kelio.io/V5.1P5/fr-F ... index.html
Тестовые запросы из SOAP-UI в порядке.
Я пытался сгенерировать код из подключенной службы в своем проекте,
с помощью мастера Visual Studio 2022 из WSDL, расположенного:
https://sandbox-ws.kelio.io/open/servic ... rvice?wsdl
пользователь: api-ws
пароль: ws-sandbox
Но когда я пытаюсь использовать его с помощью VS

Код: Выделить всё

void SalarieTEst()
{
Salaries.LightEmployeeServicePortTypeClient client = new Salaries.LightEmployeeServicePortTypeClient();
client.ClientCredentials.UserName.UserName = "api-ws";
client.ClientCredentials.UserName.Password = "api-sandbox";

var toto = client.exportLightEmployees("", "");
}
Я получаю следующую ошибку:

System.ServiceModel.Security.MessageSecurityException : 'Запрос HTTP не авторизуется со схемой аутентификации клиента «Анонимный». Для аутентификации на сервере используется 'Basic Realm="Bodet Realm"'.

Вместо этого я попробовал код, сгенерированный SOAPUI, я получаю ошибку безопасного соединения, но результат, похоже, не совпадает, все данные имеют нулевые значения.
Наконец, я пытаюсь просто выполнить запрос со стандартом HttpClient:

Код: Выделить всё

async Task TestSoap()
{
var url = @"https://sandbox-ws.kelio.io/open/services/LightEmployeeService";
var soapEnveloppe = @"








Kelio Démonstration

Cadres

0




";

string username = "api-ws";
string password = "api-sandbox";
string domain = "Bodet"; // Optional

var AuthToken = Convert.ToBase64String(Encoding.UTF8.GetBytes($"{username}:{password}"));

using (var Client = new HttpClient())
{
var request = new HttpRequestMessage(HttpMethod.Post, url);
Client.DefaultRequestHeaders.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue("Basic", AuthToken);
request.Content = new StringContent(soapEnveloppe, Encoding.UTF8, "text/xml");

var response = await Client.PostAsync(url, request.Content);
}
}
Но возникает та же ошибка http 403.
Я также пробовал использовать HttpClienderhandler и PreAuthenticate, но всегда получаю тот же результат....
Пожалуйста, помогите :)

Подробнее здесь: https://stackoverflow.com/questions/796 ... tion-issue
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»