Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/35.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# 使用多个使用HTTP Cookie的asmx服务的WCF客户端_C#_Asp.net_Wcf_Cookies_Asmx - Fatal编程技术网

C# 使用多个使用HTTP Cookie的asmx服务的WCF客户端

C# 使用多个使用HTTP Cookie的asmx服务的WCF客户端,c#,asp.net,wcf,cookies,asmx,C#,Asp.net,Wcf,Cookies,Asmx,我试图在多个WCF客户端端点中使用相同的http cookie(实际上是asmx会话ID) 服务器有多个端点,其中一个是: AuthenticationService.asmx Login()如果启用了asp.net兼容模式,则可以从WCF服务中访问http会话,因此不需要添加任何cookie即可 我刚刚遇到了同样的问题。如果WCF客户端只与一个ASP.NET服务通信,那么就很容易了。只需将BasicHttpBinding上的AllowCookies属性设置为true,服务代理将自动处理ASP.

我试图在多个WCF客户端端点中使用相同的http cookie(实际上是asmx会话ID)

服务器有多个端点,其中一个是:

AuthenticationService.asmx

Login()如果启用了asp.net兼容模式,则可以从WCF服务中访问http会话,因此不需要添加任何cookie即可


我刚刚遇到了同样的问题。如果WCF客户端只与一个ASP.NET服务通信,那么就很容易了。只需将BasicHttpBinding上的AllowCookies属性设置为true,服务代理将自动处理ASP.NET会话ID cookie

但我有一个像你这样的情况,有两个ASP.NET服务需要我的WCF客户端与之对话。第一个服务发出一个ASP.NET会话ID cookie,我需要能够在调用中将该cookie传递给第二个服务。有人知道怎么做吗?

看看。
它解释了如何在WCF客户端代理中手动管理Cookie。更准确地说,WCF公开了一个API,允许您从HTTP响应中提取cookie,并以相同的方式手动将cookie设置为HTTP请求。

您需要做的是利用此机制从给定客户端代理收到的HTTP响应中手动提取cookie,并将同一cookie分配给另一个客户端代理发送到不同服务的HTTP请求。

MSDN论坛上介绍了如何使用WCF消息检查器为应用程序中的每个服务调用执行此操作

更新:


我写了一篇关于如何解决这个问题的博客文章。您可以阅读。

问题是我还没有创建asmx服务,它超出了我的控制范围。我确实可以控制客户端,但据我所知,ASP.Comp模式适用于服务器端点服务?是的,它只需在网站的web.config中启用即可。我写了一篇关于如何解决此问题的博客文章: