c# - 将 header 添加到 .Net 3.5 WCF 客户端

标签 c# .net wcf header client

我在 c# .Net Framework 3.5 中有一个简单的 Web 客户端,它像这样调用 SOAP 服务 HelloWorld:

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

我正在使用一些通过请求授权 header 来增加基本安全性的中间件:“Authorization=Bearer 123456abcd”,它与 REST 服务一起使用,但我想使用上面的 .Net 客户端使用该服务...

如何将 header 添加到服务调用中? 是否存在类似于:myservice.addHeader("authorization=blah");

最佳答案

你应该使用 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);

关于c# - 将 header 添加到 .Net 3.5 WCF 客户端,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11836035/

相关文章:

c# - 使用引用其依赖项的构造函数创建动态类型

javascript - AJAX与WCF获取跨域导致parseError

asp.net - 如何像WCF一样实现Asp.net MVC One Way/Fire And Forget调用?

java - 对于Android应用程序来说,c#好还是java好?

c# - 为什么不调用 AsyncTask 中的 OnProgressUpdate?

c# - gmap 使用鼠标左键拖动

.net - appsettings.json 文件中的 JSON 变量替换在 Azure DevOps 版本中不起作用

c# - Unity3D 和 Microsoft Azure API 应用程序提供 json 数据

.net - 通过新的 async/await 异步使用 Linq to Sql

c# - 用于管理需要与其托管应用程序进行对话的WCF状态服务的回调方法的正确性