秀纳

  博客园 :: 首页 :: 新随笔 :: 联系 :: 订阅 :: 管理 ::

基于Web下的WebService之间的会话保存

原理:WebService的会话保存仅能使用一个唯一的cookie来标示!
也就是server.CookieContainer=new System.Net.CookieContainer();
这样写,在window程序中没有问题,只要是全局性的。但是在web下边就不行了。因为用户每次提交都是一个新的网页,cookie不一定能被保存。


基于Web下的WebService之间的会话保存

在Page_Load里面:

if(!IsPostBack)//在网页载入时注册一个cookie
{
PLPTest2.GetService.MyService server=new PLPTest2.GetService.MyService();
             
CookieContainer c=new System.Net.CookieContainer();
        server.CookieContainer=c;//不注册cookie,WebSerive就不能识别一个用户,即使WebSerice的WebMethod(true)
        Session["cookie"]= c;//保存到Session中。不保存的cookie,怕是不能及时获得这个对象,还怕用户禁用cookie。
}


在应用时:

CookieContainer c=(CookieContainer)Session["cookie"];//获得保存的cookie,保证唯一。WebService就是通过这个唯一的cookie来确定会话的。
PLPTest2.GetService.MyService server=new PLPTest2.GetService.MyService();
server.CookieContainer=c;//赋值
server.YourName("Test");//执行WebService
Session["cookie"]= c;//把执行之后的cookie再次记录下来。很重要!
posted on 2006-10-08 00:05  秀纳  阅读(316)  评论(0)    收藏  举报