Response.Cookies["ID"].Expires = DateTime.Now.AddDays(14);到期后 Request.Cookies["ID"]  != nullResponse.Cookies["ID"].Expires = DateTime.Now.AddMinutes(4);到期后 Request.Cookies["ID"]  == null
这是为什么?

解决方案 »

  1.   

    .AddDays(14)是14天后,中间没有代码访问,应该是会为null的。你是怎么测试的
      

  2.   

    14天的没测试
    反正等到 14天后 
    if (Request.Cookies["ID"] != null)
    依然能通过但是 与 Cookies["ID"] 设置的同一超时时间(创建也是同时)的  Cookies["user"] 却为 null 了
    无法获取到Cookies["user"]
    导致 报错 
      

  3.   

    如果其他地方的代码没有进行再次赋值,应该跟Cookies["user"]一样的,仔细查下代码吧
      

  4.   

    难道是因为 Response.Cookies["ID"].Expires = DateTime.Now.AddDays(14);
    Response.Cookies["user"].Expires = DateTime.Now.AddDays(14);
    而不是DateTime time = DateTime.Now.AddDays(14);
    Response.Cookies["ID"].Expires = time ;
    Response.Cookies["user"].Expires = time ;
    导致的?
      

  5.   

    不推荐使用
    Response.Cookies["ID"].Expires这种方法,
    设置Cookie应该
    HttpCookie h = new HttpCookie("ID","value");
    h.Expires = DateTime.Now.AddDays(14);
    Response.Cookies.Add(h);读取应该是
    Request.Cookies["ID"]
    Request.Cookies 和 Response.Cookies 的区别
    http://dotnet.aspx.cc/file/Difference-Response-Cookies-Request-Cookies.aspx
      

  6.   


    一个是请求 一个是回发  傻子都知道 区别吧
    你的答案 不对 其实 正确答案 我上面写了 是因为两个的 Expires 没用同一变量 不一致导致的差距可能就那么 几毫秒
    看你打字多辛苦 分就给你了