将cookie添加到Web服务端口客户端

时间:2009-07-27 13:19:43

标签: c# web-services client cookies cookiecontainer

我在我的应用中使用了一项Web服务,该服务需要设置特定的cookie才能访问它的方法。

我正在为使用wsdl.exe工具创建的服务使用生成的包装类。使用该方法一切正常。

// this is the instance of object generated with wsdl.exe
WSWrapper service = new WSWrapper(); 

// set cookie
service.CookieContainer = new CookieContainer();    
Cookie cookie = new Cookie(name, value, path, domain);
service.CookieContainer.Add(cookie);

// run method requiring cookie to be set
service.Test(); 

现在我想使用服务参考而不是预先生成的类来做类似的事情。我添加了Web引用,但在生成的服务引用端口客户端中似乎没有CookieContainer(或类似的东西)。

有谁知道如何向该客户添加cookie?

2 个答案:

答案 0 :(得分:4)

虽然svcutil.exe生成的代理有一些优点。

让客户端保存并返回服务器返回的cookie(过去只需添加CookieContainer),现在可以通过app.config进行控制。将allowCookies="true添加到basicHttpBindingbasicHttpsBinding作为绑定的属性。

或者使用WCF配置编辑器执行相同的操作。

答案 1 :(得分:0)

我解决了这个问题。我没有创建服务引用,而是添加了Web引用,生成的客户端具有wsdl.exe预生成类的所有属性。