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"

解决方案 »

  1.   


    HttpWResp2.Cookies;        
    一直是空的
      

  2.   

    cookie有两种
    不设置过期时间,则表示这个cookie生命周期为浏览器会话期间,只要关闭浏览器窗口,cookie就消失了。这种生命期为浏览会话期的cookie被称为会话cookie。会话cookie一般不保存在硬盘上而是保存在内存里
    设置了过期时间,浏览器就会把cookie保存到硬盘上,关闭后再次打开浏览器,这些cookie依然有效直到超过设定的过期时间
    存储在硬盘上的cookie可以在不同的浏览器进程间共享,比如两个IE窗口。而对于保存在内存的cookie,不同的浏览器有不同的处理方式。
    根据这种分法,IE会为每个浏览器进程会保存一份会话cookie,如是通过页面的在新窗口打开,会话cookie会传递给新的游览器进程。
    如果把会话cookie持久化保存到本地后,其它IE浏览器窗口的会话cookie会失效,转而使用本地的持久cookie,这个在应用处理中需要注意。
      

  3.   

    不是问cookie的基本常识.
    哎 怎么回答问题的都不仔细看问题? 还是我说的不明白?