2011-09-16 22 views
2

我的C#webservice上有一些代碼,它檢查頭部字符串是否包含有效的用戶。如何獲得SAVON(ROR)SOAP標頭以符合我的C#服務要求?

的代碼是:

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

回答

2

我缺的是屬性選項,對XML命名空間增加,因此它並沒有被認定爲相同的標題。

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