`
lovnet
  • 浏览: 6714965 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
文章分类
社区版块
存档分类
最新评论

我碰到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
\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( 代码之后。

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

分享到:
评论

相关推荐

    Vue axios 跨域请求无法带上cookie的解决

    这两天用VUE写管理后端时,碰到一个奇葩问题: 我本地使用dev配置开发的时候 请求可以带上cookie信息 打包出来部署在服务器上 请求就没带上cookie信息。 然后自己慢慢排查,联合后端同事,排查这个cookie问题,前端...

    网站抓取(使用cookie)

    网站抓取的代码示例! 有时我们会碰到被抓取页面需要验证状态的情况,解决办法是使用相同的Cookie容器即可.

    Laravel5中Cookie的使用详解

    今天在Laravel框架中使用Cookie的时候,碰到了点问题,自己被迷糊折腾了半多小时.期间研究了Cookie的实现类,也在网站找了许多的资料,包括问答。发现并没有解决问题。网上的答案都是互相抄袭,互相转载。其实并没有...

    PHP setcookie设置Cookie用法(及设置无效的问题)

    结果碰到一个问题,setcookie设置了Cookie并没有生效,在浏览器端也没有看到。查了一下,原来是setcookie是通过HTTP请求响应的Header来完成的,需要在请求响应内容输出之前执行(就像其他Header设定一样)。 在...

    浅谈COOKIE和SESSION区别

    在PHP面试中经常碰到请阐述session与cookie的区别与联系,以及如何修改两者的有效时间。具体来说cookie机制采用的是在客户端保持状态的方案,而session机制采用的是在服务器端保持状态的方案。

    ASP+SQL教材大全

    例如,如果一个用户在一个很长的HTML表单中忽略了回答一个问题,他或她应该不能到下一个页面。这个表单应该重新刷新而先前已做的回答应原封未动。在这章里,你将学习到如何在HTML表格里自动重显这些字段。 ■不通过...

    在vue中使用cookie记住用户上次选择的实例(本次例子中为下拉框)

    最近工作中碰到一个需求,添加一条数据时,自动记住上次选择的下拉框的数据,刚开始觉得没思路,后来请教了项目组长,组长直接一句,这不很简单吧,直接用cookie,我:……. 好吧,都王的差不多了,于是经过一番百度实践,测试,...

    用HttpClient来模拟浏览器GET POST

    本文会针对我们在编写HTTP客户端程序时经常碰到的几个问题进行分别介绍如何使用httpclient来解决它们,为了让读者更快的熟悉这个项目我们最开始先给出一个简单的例子来读取一个网页的内容,然后循序渐进解决掉前进中...

    vue-resource post数据时碰到Django csrf问题的解决

    主要介绍了vue-resource post数据时碰到Django csrf问题的解决,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

    Python爬虫使用浏览器cookies:browsercookie过程解析

    爬虫和反爬虫就是一个猫和老鼠的游戏,道高一尺魔高一丈,两者反复纠缠。 由于http协议的无状态性,登录验证都是通过传递cookies来实现的。通过浏览器登录一次,登录信息的cookie是就会被浏览器保存下来。下次再打开...

    HttpHelper:对HttpClient进行封装,简化getpost操作

    #HttpHelper ####对HttpClient进行封装,简化get/post操作,使用...还有一个提取Cookie的方法,我对Cookie这边了解不是太多,可能一些网站上的Cookie会提取错(目前我还没碰到),这一点就要靠大家指教了,我会慢慢完

    php中实现记住密码下次自动登录的例子

    做网站的时候经常会碰到要实现记住密码,下次自动登录,一周内免登陆,一个月内免登陆这种需求。...保存的这个cookie值则可以取一个随机码。 具体示例代码如下: 复制代码 代码如下: $username=trim($_POST[

    httplook,httplook.exe

    比较典型的一个例子就是 SharePoint Team Services 中使用了 WebBot ,查看源码根本不知道它调用了那些 ASP/Script/CSS 文件,但使用 HTTPLook 之后,一目了然,非常有效,可以据此来自定义原有页面风格,如色彩,...

    httplookexport4

    比较典型的一个例子就是 SharePoint Team Services 中使用了 WebBot ,查看源码根本不知道它调用了那些 ASP/Script/CSS 文件,但使用 HTTPLook 之后,一目了然,非常有效,可以据此来自定义原有页面风格,如色彩,...

    视觉营销,传达品牌的力量(Lite)

    这个一个Lite版本的PPT,今天我把它转成日志和大家一起交流,我也正着手书写完整版本的PPT,也期望能尽快和大家分享我更多的idea。今天和大家分享的是视觉营销和品牌传达,本PPT主要讲述通过视觉营销来达到传达品牌...

    详解SpringSession架构与设计

    开始进行Web开发时,您可能在使用Session时会碰到Cookie和LocalStorage,被它们所干扰。因为他们都可以存储数据,有过期时间,不需要在使用时重新请求。您还会遇到这样的情况,Web 容器(例如Tomcat、Jetty)包含...

    九种跨域方式实现原理

    Cookie、LocalStorage、IndexedDB等存储性内容DOM节点AJAX请求发送后,结果被浏览器拦截了但是有三个标签是允许跨域加载资源<imgsrc><linkhref>[removed]当协议、子域名、主域名、端口号中任意一个不相同时,...

Global site tag (gtag.js) - Google Analytics