日期:2014-05-17  浏览次数:20681 次

问一个asp.net中cookie的问题
我想问下,cookie应该保存在客户端的吧,我在代码中写了:
protected void Page_Load(object sender, EventArgs e)
  {
  if (Request.Cookies["MySessionId"] == null)
  { 
  string sessionId=Guid.NewGuid().ToString();
  Response.SetCookie(new HttpCookie("MySessionId", sessionId));
  }
  }


为什么我“在浏览器中查看”后刷新或者再开个页面都能读取原来MySessionId这个cookie,但是当我把IE关了后,再打开“在浏览器中查看”时MySessionId这个cookie就更新了?
我的理解是既然存在客户端,那应该存在我电脑里,我再“在浏览器中查看”时访问的域名没变,也应该把我原来cookie中的MySessionId传送给服务器端,而不是变空了。
求大神赐教,我用的vs2010,菜鸟,刚学。

------解决方案--------------------
Response.Cookies.Add(new HttpCookie("MySessionId", sessionId));
试试
------解决方案--------------------
Cookies需要设置超时时间后才会被客户端记住,否则放关闭浏览器的时候没有设置的Cookies都会清空。
C# code

Response.Cookies("cookiename").Expires=DateTime.Now.AddDays(1);//指定cookie的过期时间为1天

------解决方案--------------------
默认情况下,。Cookie是浏览器进程内的,关闭浏览器上清空Cookie的,所以 但是当我把IE关了后,是没有的
要保留Cookei需要设置Expires
------解决方案--------------------
COOKIE的生命周期过了吧。还有。确认一下服务器的时间是否为准确时间。