cookie
来源:互联网 发布:js闭包循环面试题 编辑:程序博客网 时间:2024/05/16 17:28
创建一个Cookie并将其写回到客户端
HttpCookie testCookie=new HttpCookie("firstCookie");//创建一个名为firstCookie的Cookie对象。
// HttpCookie testCookie=new HttpCookie("firstCookie","value1");//创建一个名为firstCookie的对象并且其只有一个值是"value"
testCookie.Expires=DateTime.Now.AddDays(1);//设置Cookie的过期时间
Response.Cookie.Add(testCookie);//将该Cookie输出到浏览器
/*下面的是创建多值的Cookie*/
HttpCookie MultiValueCookie = new HttpCookie("cookieTest2");
MultiValueCookie.Values.Add("key1","value2");
MultiValueCookie.Values.Add("key2","value3");
MultiValueCookie.Expires = DateTime.Now.AddDays(1);
Response.Cookies.Add(MultiValueCookie);
在服务器端读取Cookie
HttpCookie SingleValuesCookie=Request.Cookies["cookieTest1"];
Response.Write(SingleValuesCookie.Value);//输出Cookie的值
Response.Write(SingleValuesCookie.Expires);//输出Cookie的过期时间
- 我们发现,所有Cookie的过期时间都不能正常显示。这是因为浏览器返回给服务器的Cookie是不包含过期时间的,而服务器返回给浏览器的Cookie是包含过期时间的。过期时间只对客户端浏览器有意义,对服务器来说没有什么意义。(在此产生一个疑问就是怎么在服务器端判断获取的Cookie已经过期)
删除Cookie
下面是删除Cookie的操作。
protected void btn_DelCookie_Click(object sender, EventArgs e)
{
HttpCookie SingleValueCookie = Request.Cookies["test1"];
SingleValueCookie.Expires = DateTime.MinValue;
Response.Cookies.Add(SingleValueCookie);
}
如果你想删除所有Cookie,可以遍历删除。
protected void btn_DelCookie_Click(object sender, EventArgs e)
{
foreach (string key in Request.Cookies.AllKeys)
{
HttpCookie cookie = Request.Cookies[key];
cookie.Expires = DateTime.MinValue;
Response.Cookies.Add(cookie);
}
}
我们始终要记住,服务器不能直接删除Cookie,删除Cookie的操作是浏览器进行的。说是删除,其实是把它的过期时间设置为过去的时间,让Cookie过期。因此,对于删除操作来说有三个步骤。
1.从Request对象中获取Cookie。
2.把Cookie的过期时间设置为过去的时间。
3.把Cookie重新写回Response中。
4.修改Cookie的操作也非常简单。
protected void btn_ModifyCookie_Click(object sender, EventArgs e)
{
HttpCookie SingleValueCookie = Request.Cookies["test1"];
SingleValueCookie.Value = "修改后的单值Cookie";
Response.Cookies.Add(SingleValueCookie);
}
Cookie总结
Cookie虽然是一个简单实用的对象,但是我们也要注意Cookie的工作原理、大小限制以及安全性等,大致可以归纳为以下几点。
- 存储的物理位置。客户端的Cookies文件夹内。
- 存储的类型限制。字符串。
- 状态使用的范围。当前请求上下文的上下文都能访问到Cookie,Cookie对每个用户来说都是独立的。
- 存储的大小限制。每个Cookie不超过4K数据。每个网站不超过20个Cookie。所有网站的Cookie总和不超过300个。
- 生命周期。每个Cookie都有自己的过期时间,超过了过期时间后失效。
- 安全与性能。存储在客户端,安全性差。对于敏感数据建议加密后存储。
- 优点缺点与注意事项。可以很方便地关联网站和用户,长久保存用户设置。
- Cookie
- cookie
- cookie
- Cookie
- cookie
- Cookie
- cookie
- Cookie
- Cookie
- Cookie
- cookie
- cookie
- cookie
- Cookie
- cookie
- Cookie
- cookie
- cookie
- Javascript牛刀小试
- 黑马程序员----OC学习之单例模式
- Java实现经典排序算法及复杂度稳定性分析
- android TextView设置删除线,超链接,颜色和字体等说介绍,androidtextview
- windows下,域名解析,获取适配器信息
- cookie
- Linux内核源码分析--内核启动之(1)zImage自解压过程(Linux-3.0 ARMv7)
- Push---极光推送
- 单例初探(使用单例存储app全局公用数据)
- 关于PL/SQL Developer 中文乱码的解决
- Absolute paths & require()
- 获取运行中的TeamViewer的账号和密码(Test on English GUI)
- ExtJs 入门教程二十[数字框 :NumberField]
- java中堆和堆栈的区别