我正在尝试在多个 WCF 客户端端点中使用相同的 http cookie(实际上是一个 asmx sessionid)。
服务器有几个端点,其中之一是:
AuthenticationService.asmx
Login() <- 创建一个作为服务器 ASP.NET sessionid 的 HTTP cookie
Logout() <- 销毁相同的 cookies
SomeOtherService.asmx
DoSomeThing() <- 从 AuthenticationService.asmx 请求有效的 cookie。
如何跨多个端点共享 HTTP Cookie。
我无法控制服务器代码,必须使用 WCF。
最佳答案
看看this article .
它解释了如何在 WCF 客户端代理中手动管理 cookie。更准确地说,WCF 公开了一个 API,让您可以从 HTTP 响应中提取 cookie,并以同样的方式手动将 cookie 设置为 HTTP 请求。
您需要做的是利用此机制从给定客户端代理收到的 HTTP 响应中手动提取 cookie,并将该相同的 cookie 分配给另一个客户端代理发送到不同服务的 HTTP 请求。强>
This thread在 MSDN 论坛上解释了如何使用 WCF 消息检查器对应用程序中的每个服务调用执行此操作。
更新:
我已经写了一篇关于如何解决这个问题的博文。可以看一下over here .
关于c# - WCF 客户端使用多个使用 HTTP Cookie 的 asmx 服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/201153/