2

我的 C# webservice 上有一些代码,用于检查标头字符串是否包含有效用户。

代码是:

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

soapHeader我检查的字符串在哪里。(当前包含用户名和密码(MD5))

我将如何在标头中从 SAVON Rails 发送一个字符串,以便可以在 Web 服务上将其拉回。

最好不要更改当前的 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);
4

1 回答 1

2

我缺少的是属性选项,添加到 XML 命名空间,因此它没有被识别为相同的标题。

    response = client.request :wsdl, :get_services do
      soap.header = { "VerifyUser"  => "1:5F4DCC3B5AA765D61D8327DEB882CF99", :attributes! => { "VerifyUser" => { "xmlns" => "http://www.companyname.co.uk"} } }
    end
于 2011-09-27T12:25:58.863 回答