zoukankan      html  css  js  c++  java
  • 关于COOKIES需要注意的一点

    COOKIES是很方便使用,也是很广泛使用的状态存储体

    由于COOKIES的设置简单,使用起来也很方便,因此,平时直接读写COOKIE的过程中并没有发现COOKIE的Expires问题。

    当从 REQUEST获取一个COOKIES实例后,如果不重新设置Expires的情况下再次将COOKIES发送到客户端,Expires会变成关闭页面过期。

    举个例:

    先在一个页面里发送COOKIES

     HttpCookie _currentCookie;

    _currentCookie = new HttpCookie("test");

    _currentCookie.Expires = DateTime.Now.AddYears(1);

    Response.AppendCookie(_currentCookie);

    然后再另一个页面将它接收

     HttpCookie _currentCookie;

     _currentCookie = Request.Cookies["test"];

    此时,我们可以通过获取并显示出Expires过期时间。

    Response.Write(_currentCookie.Expires.ToString());

    照常理,我们没有改动这个COOKIES,获取后原封不动的有发送到了浏览器,应该不会有什么变化。

    但是实际上会发现一个问题

    _currentCookie["test"].Expires 变成了 0001-1-1 关闭页面后即过期。

    通过以上实验,发现,实际上我们无法获取COOKIES的Expires属性,所以,在使用Response.AppendCookies的时候,如果该实例没有重新设置Expires,则Expires会以默认设置(页面关闭过期)被发送,因此每次发送COOKIE如果你希望有过期时间都必须重新设置。

    这个问题是我在封装COOKIE时遇到的,虽然以前也非常经常的用到COOKIES,但是这次因为想封装成一个独立的类,所以在精简代码的过程中遇到这样的问题!

    看来,不管多熟悉的东西,它总会有让人陌生的一面,需多多学习!

    当然,这是在.NET2.0 C#中,似乎1.1中是可以获取REQUEST过来的COOKIE的Expires属性的。

  • 相关阅读:
    各版本mysql乱码的问题解决
    Centos+apache2.4.2+mysql5.5+php5.3.10+memcache+sphinx配置全程
    Mysql 优化
    Mysql 表优化
    Mysql 索引优化
    python整合连续数字的练习,包含itertoolsgroupby用法
    MySQL INTO OUTFILE/INFILE导出导入数据
    python lambda使用if
    mysql小知识
    Python利用urllib2抓取网页返回乱码的问题
  • 原文地址:https://www.cnblogs.com/ZetaChow/p/2237358.html
Copyright © 2011-2022 走看看