• 我碰到Cookie的一个问题


    CSDN的用户反馈回来一个很诡异的bug,当用户系统的时间不正确的时候,比正确时间快或者慢时,用户就登录不上去,很诡异。解决这个问题花了我不少时间。导致这个问题的原因如下:

    使用 HttpContext.Current.Response.Cookies.Set( 更新一个Cookie后, 会导致 HttpContext.Current.Request.Cookies 中的Cookie的更新全部失效。下面是一个演示这个问题的代码:

    HttpCookie hc1 = new HttpCookie("aaa", "34556");
    HttpCookie hc2 = new HttpCookie("bbb", "8888");
    
    HttpContext.Current.Request.Cookies.Set(hc1);
    Response.Write(HttpContext.Current.Request.Cookies["aaa"].Value);
    Response.Write("\r\n<br />\r\n");
    
    HttpContext.Current.Response.Cookies.Set(hc2);
    
    if (HttpContext.Current.Request.Cookies["aaa"] != null)
        Response.Write(HttpContext.Current.Request.Cookies["aaa"].Value);
    else
        Response.Write("null");
    

    这个程序执行后,会显示:

    34556
    null

    解决方法很简单:

    所有的 HttpContext.Current.Request.Cookies.Set( 代码都放在 HttpContext.Current.Response.Cookies.Set( 代码之后。

    至于为何客户端时间和服务器时间一致时,就没问题,客户端和服务器时间不同步就有问题,那就很怪异了,我一直也没想明白。

  • 相关阅读:
    wait(),notify(),notifyAll()
    AsyncTask
    锻炼记忆力
    apache URL重写 标志表 以及 错误解决方法
    php如何判断字符串是否是字母和数字的组合
    linux 下screen 使用
    MongoDB运行状态、性能监控,分析
    批量 汉字 转 拼音方法
    mysql 数据库备份
    LINUX下 一句话添加用户并设置ROOT权限
  • 原文地址:https://www.cnblogs.com/ghj1976/p/1702470.html
Copyright © 2020-2023  润新知