Cookie总是保存在客户端中,按在客户端中的存储位置,可分为内存Cookie和硬盘Cookie。
内存Cookie由浏览器维护,保存在内存中,浏览器关闭后就消失了,其存在时间是短暂的。硬盘Cookie保存在硬盘里,有一个过期时间,除非用户手工清理或到了过期时间,硬盘Cookie不会被删除,其存在时间是长期的。所以,按存在时间,可分为非持久Cookie和持久Cookie。
简而言之,在Cookie的时候有三个过程,分别是“写入,读取,删除”。任何伟大之作都是有基本的东西构成的,而Cookie的运用也不例外。
写入:
1 //创建一个HttpCookie对象 2 HttpCookie cookie = new HttpCookie("RON"); 3 //设定此cookies值 4 cookie.Value = "我叫小魏"; 5 //设定cookie的生命周期,在这里定义为三分钟 6 DateTime dtNow = DateTime.Now; 7 TimeSpan tsMinute = new TimeSpan(0, 0, 3, 0); 8 cookie.Expires = dtNow + tsMinute; 9 cookie["Name"] = "小魏"; 10 cookie["Sex"] = "男"; 11 cookie["Age"] = "22"; 12 //加入此cookie 13 Response.Cookies.Add(cookie); 14 Response.Write("Cookie创建完毕");
HttpCookie 在 System.Web 这个命名空间里面,所以你需要引用
1 using System.Web;
*创建Cookie
创建Cookie的时候必须指定Cookie的Name和Value。在例子中,cookie 的Name是“RON”,Value是“我叫小魏”!cookie是保存在浏览器当中的,而每个Cookie的区别是根据Name这个属性的值来确定的。所以,如果Name相同,Cookie的内容将被覆盖。而那些cookie["Name"]等等是cookie["RON"]的子键。
*Cookie有效期
Cookie的另外一个重要的属性是有效期。通过属性Expires设置。例子中,cookie设置的有效期为三分钟。目前为止,最长的有效期是50年,这是那个丫地设定的啊。有50年的公司都不错了。其实在有效期的设置上我更喜欢这句话。
cookie.Expires = DateTime.Now.AddMinutes(3);
简单,容易理解。
在有效期的问题上,有两个时间比较特殊:
#永久性 Cookie 设置永远不过期 最长为50年
#非永久性 Cookie 不设置有效期 关闭浏览器即消失
*多值cookie
Cookie可以保存多个值,你只要创建一个带子键的Cookie就可以了。例如
1 HttpCookie aCookie = new HttpCookie("userInfo"); 2 aCookie.Values["userName"] = "rond"; 3 aCookie.Values["lastVisit"] = DateTime.Now.ToString(); 4 aCookie.Expires = DateTime.Now.AddDays(1);
例子中创建了一个Name为userInfo的Cookie,而且此Cookie还带有两个子键。
*Cookie的范围
默认情况下,Cookie的整个站点都是有效的。意思就是说,在同一个站点(也可以理解成同一个域名)下的所有网页都是可以获取到Cookie的。如果你不希望你的Cookie在所有范围都有效。你可以限定Cookie的范围。方法是通过Cookie的Path属性,属性值为范围所在的路径,相对路径有效。譬如
1 appCookie.Path = "/Application1";
除了限定Cookie的路径范围,还可以用Cookie的Domain属性限定Cookie的域名范围。例如
1 appCookie.Domain = "jsjx.gdufs.edu.cn";
例子中将cookie限定在“广东外语外贸大学”的“信息学院”(