我写了一个程序判断Cookie是否存在,如果不存在就创建,如果存在就读取内容,问题是,如果我手动把cookie删除了,但程序判断cookie还是存在,这个是为什么,但值取不到 //判断cookie是否存在
public bool CheckCookieYear()
    {
        if (Request.Cookies["JpnetFirstCome"] != null)
        {
            HttpCookie FirstCome = Context.Request.Cookies["JpnetFirstCome"];
            string aa = FirstCome.Values["ID"];            if (FirstCome.Values["ID"] != null && FirstCome.Values["CreatTime"] != null)
            {
                return true;
            }
            else
            {
               
                return false;
            }
        }
        else
        {
            
            return false;
        }    }//创建cookie函数
 public void CreatCookie(string CookieValue)
    {        HttpCookie FirstCome = new HttpCookie("JpnetFirstCome");
        FirstCome.Values.Add("ID", CookieValue);
        FirstCome.Values.Add("CreatTime", System.DateTime.Now.ToString());
        FirstCome.Expires = System.DateTime.Now.AddYears(1);
        Response.SetCookie(FirstCome);                    //改成Response.Cookie.Add()问题一样
    }

解决方案 »

  1.   

    创建cookie完后,Response.Flush();再看看效果
      

  2.   

    如果我手动把cookie删除了,但程序判断cookie还是存在,这个是为什么,但值取不到
    ====》
    如果先删除Cookie,再用浏览器请求网页,那么Cookie将不存在;
    如果先用浏览器打开页面,后删除掉Cookie,只要浏览器不关掉,Cookie将一直保存在内存里。这代代码如果能得出结论:程序判断cookie还是存在,但值取不到???
    public bool CheckCookieYear()
        {
            if (Request.Cookies["JpnetFirstCome"] != null)
            {
                HttpCookie FirstCome = Context.Request.Cookies["JpnetFirstCome"];
                string aa = FirstCome.Values["ID"];            if (FirstCome.Values["ID"] != null && FirstCome.Values["CreatTime"] != null)
                {
                    return true;
                }
                else
                {
                   
                    return false;
                }
            }
            else
            {
                
                return false;
            }    }