c# - 如何获得 SAVON (ROR) SOAP header 以满足我的 C# 服务要求?

标签 c# ruby-on-rails soap savon

我的 C# 网络服务上有一些代码,用于检查 header 字符串是否包含有效用户。

代码是:

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

其中 soapHeader 是我检查的字符串。 (目前包含用户名和密码(MD5))

我如何在 header 中从 SAVON Rails 发送一个字符串,以便它可以在网络服务上被拉回。

最好不要更改当前的 C# 代码,除非您也可以指定从 C# 客户端发送的方式。

我试过了

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

干杯!

编辑:这就是我目前在 C# 中添加 header 的方式

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);

最佳答案

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

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

关于c# - 如何获得 SAVON (ROR) SOAP header 以满足我的 C# 服务要求?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7443542/

相关文章:

c# - 如何获取和设置 EmguCV Mat 图像的像素值?

ruby-on-rails - 无需点击浏览器即可授权应用程序,代码级别 [Doorkeeper]

java - 如何将 XML 请求附加到 SOAP Body 的唯一 SOAPElement 子级?

c# - 全变色算法

c# - 为什么 typeof(Foo) 会返回 null?

c# - 如何修改正则表达式以允许括号

ruby-on-rails - 连接到 S3 时获取 "SSL_connect returned=1 errno=0 state=error: certificate verify failed"

ruby-on-rails - 无法从获取请求中获取 'Access-Control-Allow-Origin' header

web-services - SOAP over SMTP/JMS 的任何用例?

wcf - 如何使用 WCF 签署 X509 token