6

我有一个WCF 客户端,它与WCF 服务(运行 AspNetCompabilityMode)通信,我想在每次调用此 Web 服务时添加一个cookie (在客户端上)。

我查看了HttpTransportBindingElement,但找不到在哪里添加我的 cookie - 是否可以将 cookie 添加到 HttpTransportBindingElement,或者我应该考虑另一种方法?

4

3 回答 3

3

http://megakemp.wordpress.com/2009/02/06/managing-shared-cookies-in-wcf/

与其他答案中提供的其他手册不同,这本手册以结构良好的方式在一个地方包含了您需要的所有信息。

于 2011-10-26T07:50:33.293 回答
2

您必须将绑定的 allowCookies 配置选项设置为false。这听起来很奇怪,但这里解释了原因:

http://kennyw.com/indigo/211

完成此操作后,您必须使用此处描述的方法自己添加 cookie:

http://kennyw.com/indigo/153

于 2009-01-13T20:12:00.653 回答
2

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/

于 2009-01-13T21:24:37.963 回答