比如我在a.aspx.cs中写
if (HttpContext.Current.Request.Cookies["aaa"] == null)
            {
                Response.Cookies["aaa"].Value = "bbbb";
            }然后转到b.aspx.cs中收并删除
HttpContext.Current.Request.Cookies["aaa"].Value = null;
            HttpContext.Current.Request.Cookies["aaa"].Expires = DateTime.Now.AddHours(-1);
            Response.Cookies.Add(HttpContext.Current.Request.Cookies["aaa"]);发布后,当我执行完b的代码后,其Cookie的文件还存在于IE临时文件中。但localhost运行时没问题。

解决方案 »

  1.   

    cookie清除的方法不正:
     cookie.Values.Remove("name");
     cookie.Values.RemoveAll();
      

  2.   

    我是采用新COOKIE替换老COOKIE,然后将替换的COOKIE过期掉,比如:
    你原来的COOKIE是HttpContext.Current.Request.Cookies["aaa"]
    在要删除的地方新做个同名字的COOKIE:
    HttpCookie testcookie= new HttpCookie("aaa");
    然后加入COOKIES集合:
    Response.Cookies.Add(testcookie);
    最后让它立刻过期
    Response.Cookies["aaa"].Expires = DateTime.Now.AddDays(-1);过期是要Response而不是Request
      

  3.   

    不好意思,理解错误.cookie一般只有在有效期后才会自动删除。或者设置你的浏览器在每次关闭的时候清除cookie.
    其实没有必要再次创建cookie文件阿,将cookie中对应项的值清空。再利用时不要创建cookie,直接负值就可以了