代码改变世界

在webservice中使用session和cookie

2011-06-12 00:47  jaywoo  阅读(447)  评论(0编辑  收藏  举报
如果要在webservice中使用session,则需要在服务端的方法中加入[WebMethod(EnableSession=true)]修饰方法,而在客户端,要在实例化了webservice代理类之后,要为它的CookieContainer 实例化一个 new CookieContainer();这样才能使用session存储状态。另外在多个webservice代理中,只要含有相同的cookie,就能共用相同的session,其中的cookie通过代理类的CookieContainer.GetCookies(new Uri(s.Url))["ASP.NET_SessionId"]取得,如果其他的webserivce代理类需要用相同的session则可以用CookieContainer.Add方法,将取得的cookie加入即可。
如果只想使用cookie,则只需要在客户端做设置就可以,服务器端不需要像session一样加入属性修饰。
另外webmethod只用于public的成员方法,不用于static的,虽然不报错,但在客户端代理类中是找不到static方法的。