2

C# Web サービスに、ヘッダー文字列に有効なユーザーが含まれていることを確認するコードがあります。

コードは次のとおりです。

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 に答える