if (Request.Cookies["CookieA"] == null)
        {            HttpCookie cookie = new HttpCookie("CookieA");
            cookie.Expires = DateTime.MaxValue;
            cookie.Values["Style"] = "2";
            cookie.Values["Color"] = "red";
            Response.Cookies.Add(cookie);
        }
        else
        {
            
            Response.Cookies["CookieA"]["Color"] = "blue";
            Response.Write(Request.Cookies["CookieA"].Values["Style"]);
        }我在.net开发中,所有的cookie都会失效。
上面是个最简单的例子,这段代码第一次运行时,会生成cookie文件到Temporary Internet Files.刷新页面,会打印出Request.Cookies["CookieA"].Values["Style"]的值,但是cookie文件不见了。第三次刷新,结果什么都没有有了。
这是什么原因啊,难道是因为我用的vs是盗版的吗?

解决方案 »

  1.   

    CookieA
    Style=2&Color=red
    localhost/
    1024
    3509037440
    617110110
    496035424
    29823556
    *文件名:[email protected]
      

  2.   

    没有必要使用cookie上,不要使用cookie,使用session在服务器端保存。如果需要使用,仅仅使用一个cookie项就够了,例如长期记录用户登录身份,其它的附属信息使用数据库或者xml文件在服务器端保存。
      

  3.   

    如果用户多怎么办呢?
     我是用VS自带的WEB服务器调试的,带有端口号,如:localhost:8321,但是生成的cookie里所指的路径是localhost/
      

  4.   

    if (Request.Cookies["CookieA"] == null)
            {            HttpCookie cookie = new HttpCookie("CookieA");
                cookie.Expires = DateTime.MaxValue;
                cookie.Values["Style"] = "2";
                cookie.Values["Color"] = "red";
                Response.Cookies.Add(cookie);
            }
            else
            {
                //先把原来的值存到变量
                string style = Request.Cookies["CookieA"].Values["Style"];
                //然后再输出给style
                Response.Cookies["CookieA"].Values["Style"] = style;
                //再给Color赋值
                Response.Cookies["CookieA"].Values["Color"] = "blue";
                //还一定要重新设定过期时间
                Response.Cookies["CookieA"].Expires = DateTime.MaxValue;
                Response.Write(Request.Cookies["CookieA"].Values["Color"]);        }这就是可以保持cookie一直存在,但这等是把cookie又重写了遍啊!!天哪,是什么原因啊,SDK吗?
      

  5.   

    补充一下,所有的问题都出来Response.Cookies["CookieA"].Values["Color"]="blue"
    上面,也就是如果我不重新给cookie某个变量赋值,cookie就不会丢失