日期:2014-05-18  浏览次数:20502 次

操作cookie的问题
微软的网页上有这么一句:
不能直接删除用户计算机中的 Cookie。但是,可以通过将 Cookie 的到期日期设置为过去的日期,让用户的浏览器来删除 Cookie。当用户下一次向设置该 Cookie 的域或路径内的页发出请求时,浏览器将确定该 Cookie 已到期并将其移除。

请注意这一句:当用户下一次向设置该 Cookie 的域或路径内的页发出请求时,浏览器将确定该 Cookie 已到期并将其移除。
也就是说,我如果在a页面里用
  HttpCookie user = HttpContext.Current.Request.Cookies["userinfo"];
  user.Expires = DateTime.Now.AddDays(-1);
  HttpContext.Current.Response.Cookies.Add(user);
来设置cookie过期,然后在同页面马上判断cookie是否存在的话,那么永远不可能得到cookie不存在的结果?
我现在发现就是这样 if (HttpContext.Current.Request.Cookies["userinfo"] == null),这个结果永远是false,怎么才能让这个判断的结果为true呢?

------解决方案--------------------
Request.Cookies.Remove("name");
------解决方案--------------------
HttpCookie cook = HttpContext.Current.Request.Cookies["userinfo"];
if (cook != null)
{
cook.Expires = new DateTime(1970, 1, 1);
HttpContext.Current.Response.Cookies.Add(cook);
}
HttpContext.Current.Request.Cookies.Remove("userinfo");

清除cookie