Аутентификация в заголовке SOAP с использованием C# и пользовательского интерфейса SOAP.C#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Аутентификация в заголовке SOAP с использованием C# и пользовательского интерфейса SOAP.

Сообщение Anonymous »

В настоящее время я работаю над интеграцией службы SOAP в свое приложение C#, и у меня возникли проблемы с реализацией аутентификации с использованием заголовков SOAP. Я просто хочу прочитать имя пользователя и пароль из запроса SOAP. Я тестирую SoapUI.
Вот структура запроса:

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




SOAP_ODE
123456






?
?




Это мой код:
SendPinRequest.cs:

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

using System.Runtime.Serialization;

namespace OnlineDataExchange
{
[DataContract]
public class SendPinRequest
{
[DataMember(Order = 1, IsRequired = true)]
public string TransactionID { get; set; }
[DataMember(Order = 2, IsRequired = true)]
public string MSISDN { get; set; }
}
}
IPinService.cs:

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

using System.ServiceModel;
using System.Threading.Tasks;

namespace OnlineDataExchange.Contracts
{
[ServiceContract]
public interface IPinService
{
[OperationContract]
Task SendPin(SendPinRequest request);
}
}
PinService.cs:

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

using OnlineDataExchange.Contracts;
using SoapCore;
namespace OnlineDataExchange.Services
{
public class PinService : IPinService
{
private readonly IConfiguration _configuration;

public PinService(IConfiguration configuration)
{
_configuration = configuration;
}

public async Task SendPin(SendPinRequest request)
{
string resp_code = "00";
???? // Here I want to retreive the username and password from the SOAP Header
if (request == null) throw new ArgumentNullException(nameof(request));
// Check MSISDN
if (resp_code == "00") resp_code = ValidationUtils.ValidateMSISDN(request.MSISDN);
// Check Password
if (resp_code == "00") resp_code = ValidationUtils.ValidatePassword(password);

// Check credentials
Authentication au = new Authentication(_configuration);
if (resp_code == "00") resp_code = au.AuthenticateUser(username, password);

return new SendPinResponse
{
TransactionID = request.TransactionID,
ResponseCode = resp_code,
ResponseText = ResponseCodes.ResponsesDictionary[resp_code],
MSISDN = request.MSISDN
};
}
}
}
Я попробовал множество решений, найденных в Google, но ни одно не помогло, и все они казались устаревшими...

Подробнее здесь: https://stackoverflow.com/questions/787 ... nd-soap-ui
Реклама
Ответить Пред. темаСлед. тема

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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