Cookie 为 Web 应用程序保存用户相关信息提供了一种有用的方法。例如,当用户访问站点时,可以利用 Cookie 保存用户首选项或其他信息,这样,当用户下次再访问站点时,应用程序就可以检索以前保存的信息。其存储在客户端,存放的是string类型的数据。
1.Cookie的创建
1 HttpCookie cookie = new HttpCookie("myCookie"); 2 cookie.Values.Add("No", userName); 3 cookie.Values.Add("Name", HttpUtility.UrlEncode(userService.GetUser(userName).Name)); 4 cookie.Values.Add("Pass", password); 5 cookie.Values.Add("SID", System.Web.HttpContext.Current.Session.SessionID); 6 //设置过期时间 7 cookie.Expires = DateTime.Now.AddDays(5); 8 System.Web.HttpContext.Current.Response.AppendCookie(cookie);
2.删除Cookie
1 //删除Cookie 2 HttpCookie mycookie = new HttpCookie("myCookie"); 3 mycookie.Expires = DateTime.Now.AddDays(-1); 4 Response.Cookies.Add(mycookie);
3.总结
Cookie虽然是一个简单实用的对象,但是我们也要注意Cookie的工作原理、大小限制以及安全性等,大致可以归纳为以下几点。
- 存储的物理位置。客户端的Cookies文件夹内。
- 存储的类型限制。字符串。
- 状态使用的范围。当前请求上下文的上下文都能访问到Cookie,Cookie对每个用户来说都是独立的。
- 存储的大小限制。每个Cookie不超过4K数据。每个网站不超过20个Cookie。所有网站的Cookie总和不超过300个。
- 生命周期。每个Cookie都有自己的过期时间,超过了过期时间后失效。
- 安全与性能。存储在客户端,安全性差。对于敏感数据建议加密后存储。
- 优点缺点与注意事项。可以很方便地关联网站和用户,长久保存用户设置。