我在我的应用中使用了一项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?
答案 0 :(得分:4)
虽然svcutil.exe
生成的代理有一些优点。
让客户端保存并返回服务器返回的cookie(过去只需添加CookieContainer
),现在可以通过app.config进行控制。将allowCookies="true
添加到basicHttpBinding
或basicHttpsBinding
作为绑定的属性。
或者使用WCF配置编辑器执行相同的操作。
答案 1 :(得分:0)
我解决了这个问题。我没有创建服务引用,而是添加了Web引用,生成的客户端具有wsdl.exe
预生成类的所有属性。