string url = "http://xxxx/Login.aspx";
//第一步
CookieCollection cookie = new CookieCollection();
HttpWebResponse HttpWResp = HttpWebResponseUtility.CreateGetHttpResponse(url, cookie, null, null);
cookie = HttpWResp.Cookies;
//第二步
Dictionary<string, string> para = new Dictionary<string, string>();
para.Add("UserID", "xxxx");
para.Add("UserPwd", "xxxx");
HttpWebResponse HttpWResp2 = HttpWebResponseUtility.CreatePostHttpResponse(url, para, cookie);
HttpWResp2.Dispose();///第三步
url = "http://xxxx/List.aspx";
HttpWebResponse HttpWResp3 = HttpWebResponseUtility.CreateGetHttpResponse(url, cookie, null, null);
richTextBox1.Text = HttpWebResponseUtility.GetData(HttpWResp3);
HttpWResp3.Dispose();
在第一步后能获取到cookie, 到第二步完成后cookie就消失了 这是为什么?HttpWebResponseUtility 是 "周公" 的类 原文出处 "http://blog.csdn.net/zhoufoxcn"
HttpWResp2.Cookies;
一直是空的
不设置过期时间,则表示这个cookie生命周期为浏览器会话期间,只要关闭浏览器窗口,cookie就消失了。这种生命期为浏览会话期的cookie被称为会话cookie。会话cookie一般不保存在硬盘上而是保存在内存里
设置了过期时间,浏览器就会把cookie保存到硬盘上,关闭后再次打开浏览器,这些cookie依然有效直到超过设定的过期时间
存储在硬盘上的cookie可以在不同的浏览器进程间共享,比如两个IE窗口。而对于保存在内存的cookie,不同的浏览器有不同的处理方式。
根据这种分法,IE会为每个浏览器进程会保存一份会话cookie,如是通过页面的在新窗口打开,会话cookie会传递给新的游览器进程。
如果把会话cookie持久化保存到本地后,其它IE浏览器窗口的会话cookie会失效,转而使用本地的持久cookie,这个在应用处理中需要注意。
哎 怎么回答问题的都不仔细看问题? 还是我说的不明白?