我的 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/