我有一个WCF 客户端,它与WCF 服务(运行 AspNetCompabilityMode)通信,我想在每次调用此 Web 服务时添加一个cookie (在客户端上)。
我查看了HttpTransportBindingElement,但找不到在哪里添加我的 cookie - 是否可以将 cookie 添加到 HttpTransportBindingElement,或者我应该考虑另一种方法?
我有一个WCF 客户端,它与WCF 服务(运行 AspNetCompabilityMode)通信,我想在每次调用此 Web 服务时添加一个cookie (在客户端上)。
我查看了HttpTransportBindingElement,但找不到在哪里添加我的 cookie - 是否可以将 cookie 添加到 HttpTransportBindingElement,或者我应该考虑另一种方法?
http://megakemp.wordpress.com/2009/02/06/managing-shared-cookies-in-wcf/
与其他答案中提供的其他手册不同,这本手册以结构良好的方式在一个地方包含了您需要的所有信息。
您必须将绑定的 allowCookies 配置选项设置为false。这听起来很奇怪,但这里解释了原因:
完成此操作后,您必须使用此处描述的方法自己添加 cookie:
http://kennyw.com/indigo/153中描述的方法在每个服务调用的基础上工作。这意味着您必须确保对您的 WCF 服务的所有调用都是 在创建OperationContextScope对象之后并且在它被释放之前进行的。否则 cookie 将永远不会被添加到请求中。
如果您正在寻找一种集中式解决方案来手动将 cookie 添加到向 WCF 服务发出的所有传出 HTTP 请求中,请查看此线程:
http://social.msdn.microsoft.com/Forums/en-US/wcf/thread/624fb3f9-222d-4795-9140-fe9ef3934361/