3

次のように SOAP サービス HelloWorld を呼び出す c# .Net Framework 3.5 の単純な Web クライアントがあります。

HelloService myservice = new HelloService();
string result = myservice.HelloWorld();

REST サービスで動作する Authorization ヘッダー「Authorization=Bearer 123456abcd」を要求することで基本的なセキュリティを追加するミドルウェアを使用していますが、上記の .Net クライアントでサービスを利用したかったのです...

サービス呼び出しにヘッダーを追加するにはどうすればよいですか? 次のようなものが存在しますmyservice.addHeader("authorization=blah");か?

4

1 に答える 1

3

使用する必要がありますOperationContextScope

using (OperationContextScope scope = new OperationContextScope(wcfClient.InnerChannel))
      {
        MessageHeader header
          = MessageHeader.CreateHeader(
          "Service-Bound-CustomHeader",
          "http://Microsoft.WCF.Documentation",
          "Custom Happy Value."
          );
        OperationContext.Current.OutgoingMessageHeaders.Add(header);

        // Making calls.
        Console.WriteLine("Enter the greeting to send: ");
        string greeting = Console.ReadLine();

        //Console.ReadLine();
        header = MessageHeader.CreateHeader(
            "Service-Bound-OneWayHeader",
            "http://Microsoft.WCF.Documentation",
            "Different Happy Value."
          );
        OperationContext.Current.OutgoingMessageHeaders.Add(header);

        // One-way
        wcfClient.Push(greeting);
        this.wait.WaitOne();

        // Done with service. 
        wcfClient.Close();
        Console.WriteLine("Done!");
        Console.ReadLine();
      }

承認のため

var messageProperty = new HttpRequestMessageProperty();
messageProperty.Headers.Add(HttpRequestHeader.Authorization, AuthorizationHeader);
于 2012-08-06T21:23:27.773 に答える