Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/260.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将头添加到.Net 3.5 WCF客户端_C#_.net_Wcf_Header_Client - Fatal编程技术网

C# 将头添加到.Net 3.5 WCF客户端

C# 将头添加到.Net 3.5 WCF客户端,c#,.net,wcf,header,client,C#,.net,Wcf,Header,Client,我在c#.Net framework 3.5中有一个简单的web客户端,它调用SOAP服务HelloWorld,如下所示: HelloService myservice = new HelloService(); string result = myservice.HelloWorld(); 我正在使用一些中间件,通过请求授权头添加基本的安全性:“Authorization=Bearer 123456abcd”,它与REST服务一起工作,但我想使用上面的.Net客户端的服务 如何将标头添加到服

我在c#.Net framework 3.5中有一个简单的web客户端,它调用SOAP服务HelloWorld,如下所示:

HelloService myservice = new HelloService();
string result = myservice.HelloWorld();
我正在使用一些中间件,通过请求授权头添加基本的安全性:“Authorization=Bearer 123456abcd”,它与REST服务一起工作,但我想使用上面的.Net客户端的服务

如何将标头添加到服务调用? 是否存在类似于:
myservice.addHeader(“authorization=blah”)

您应该使用

授权

var messageProperty = new HttpRequestMessageProperty();
messageProperty.Headers.Add(HttpRequestHeader.Authorization, AuthorizationHeader);

您是否使用“添加服务引用”创建了客户端?是的,当我不使用中间件时,客户端可以工作。中间件增加了安全性,并希望标头进行身份验证。我一直讨厌这种中间件。它假设一切都是手动完成的,不考虑WSDL之类的内容,也不考虑生成代码。有没有一种方法可以更全局地完成这项工作,比如,对于大多数操作?因为需要与OperationContextScope一起使用,所以它只能通过抽象实现,例如,更改Func上的服务调用
var messageProperty = new HttpRequestMessageProperty();
messageProperty.Headers.Add(HttpRequestHeader.Authorization, AuthorizationHeader);