Как получить SOAP-заголовок SAVON (ROR), соответствующий моим требованиям к сервису C #? - PullRequest
2 голосов
/ 16 сентября 2011

У меня есть код на моем веб-сервисе C #, который проверяет, что строка заголовка содержит допустимого пользователя.

Код:

MessageHeaders headers = OperationContext.Current.IncomingMessageHeaders;
String soapHeader = headers.GetHeader<String>("VerifyUser", "http://companyname.co.uk");

Где soapHeader - проверяемая строка,(в настоящее время содержит имя пользователя и пароль (MD5))

Как бы я отправил строку из SAVON Rails в заголовок, чтобы ее можно было стащить обратно в веб-сервис.

Желательно без измененийтекущий код C #, если только вы не можете указать способ отправки с клиента C #.

Я пытался

response = client.request :wsdl, :get_customer_centre_details do
  soap.header = { "VerifyUser" => "1:5F4DCC3B5AA765D61D8327DEB882CF99" }
end

Приветствия!

РЕДАКТИРОВАТЬ: Вот какВ настоящее время я добавляю заголовок в C #

OperationContextScope scope = new OperationContextScope(ConChannel);
MessageHeader<String> header = new MessageHeader<String>(UserID + ":" + md5HashString);
var untyped = header.GetUntypedHeader("VerifyUser", "http://www.companyname.co.uk");
OperationContext.Current.OutgoingMessageHeaders.Add(untyped);

1 Ответ

2 голосов
/ 27 сентября 2011

Мне не хватало опции атрибутов для добавления в пространство имен XML, поэтому он не идентифицировался как тот же заголовок.

    response = client.request :wsdl, :get_services do
      soap.header = { "VerifyUser"  => "1:5F4DCC3B5AA765D61D8327DEB882CF99", :attributes! => { "VerifyUser" => { "xmlns" => "http://www.companyname.co.uk"} } }
    end
...