if (Request.QueryString["action"] != null && Request.QueryString["action"].ToString() == "exit")
        {
            Response.Cookies["UserName"].Value = "";
            Response.Cookies["UserName"].Domain = "tv150.cn";
            Response.Cookies["UserName"].Expires = DateTime.Now.AddDays(1); 
            Response.Cookies.Clear();
            HttpCookie myCookie = Request.Cookies["UserName"];
            myCookie.Expires = DateTime.Today.AddDays(-1);
            Response.Cookies.Add(myCookie);
            HttpCookie aCookie;
            string cookieName;
            int limit = Request.Cookies.Count;
            for (int i = 0; i < limit; i++)
            {
                cookieName = Request.Cookies[i].Name;
                aCookie = new HttpCookie(cookieName);
                aCookie.Expires = DateTime.Now.AddDays(-1);
                Response.Cookies.Add(aCookie);
            }
            Response.Write(Response.Cookies["UserName"].Value);
        }
 
为什么我最后一句还是能输出cookies的值,怎么也清除不掉,能用的方法都用上了。
大虾们救命啊。

解决方案 »

  1.   

    foreach (string cookieName in Request.Cookies.AllKeys)
      {
      HttpCookie cookie = Request.Cookies[cookieName];
      cookie.Expires = DateTime.Today.AddDays(-5);
      Response.Cookies.Add(cookie);
      }
      

  2.   


        /// <summary>
        /// 清除站点内的所有Cookie
        /// </summary>
        public static void ReMoveAllCookies()
        {
            //设置客户端Cookie失效
            for (int i = 0; i < HttpContext.Current.Request.Cookies.Count; i++)
            {            
                string key = HttpContext.Current.Request.Cookies[i].Name;
                HttpContext.Current.Response.Cookies[key].Expires = DateTime.Now.AddDays(-10);
            }
            //清除服务端Cookie
            HttpContext.Current.Request.Cookies.Clear();
        }
      

  3.   

    按照MSDN的说法,如果在页面加载时设置了cookie有效,只要浏览器没有被关闭,这个cookie都是有效的,即使在别的地方设置其无效也没用。只有当客户浏览器关闭后重新次打开前次的设置才起作用。楼主可以试下。
      

  4.   

    1重新写为null
    2,楼上几个的
    3,工具,internet选项,清除cookies,清除历史纪录,
    内容,自动完成,清除表单,确定,就好了
    4,Response.Cookies[ "dd "].Expires   =   new   DateTime(1900,1,1,0,0,0,0);
    5,Response.Cookies[ "user "].Expires   =   DateTime.Now;
      

  5.   

    清除cookie的方式将cookie的生效时间设置成过期,然后传给浏览器,浏览器这边检测到该cookie过期之后删除cookie。而你的代码虽然已经设置成过期了,但是还没有来得及传给浏览器,你就又输出cookie,这时候cookie肯定还没有删掉。
      

  6.   

    退出功能只要设置对应的session为空就行了,cookie只是用于设置用户的自动登录期限的。
    比如:当用户登录成功时,设置session["username"]=用户名,(用户名来自数据库),并设置一个cookie,这样用户下次可以通过cookie自动登录,就像csdn论坛那样。当用户点“注销”时,设置session["username"]=null,并设置cookie过期或移除cookie,这样用户下次再登录时就需要重新输入用户名和密码才行。
      

  7.   

     HttpCookie cookie = Request.Cookies["user"]; 
    cookie.Expires = DateTime.Now.AddDays(-1);
    cookie.Values.Clear();
    System.Web.HttpContext.Current.Response.Cookies.Set(cookie);
      

  8.   

    把COOKIE设置过期。然后系统清理的时候。就会自动清了!