一 什么是Cookie?
Cookie 提供了一种在 Web 应用程序(jsp,asp)中存储用户特定信息(如历史记录或用户首选项)的方法。
Cookie 是一小段文本,伴随着请求和响应在 Web 服务器和客户端之间来回传输。
Cookie 包含每次用户访问站点时可由 Web 应用程序读取的信息。
二 Cookie由什么管理?
浏览器管理客户端计算机上的 Cookie.
三 Cookie是怎么写入的?
Cookie是由服务器端写入客户端,但是在客户端也可以修改,必须找到Cookie存放的位置.具体的方法是使用 HttpResponse 对象可向客户端发送 Cookie,该对象会公开称为 Cookies 的属性。
任何需要 Web 应用程序发送到浏览器的 Cookie 都必须添加到此集合中。
向用户计算机写 Cookie的两种方法?
1 直接为 Cookies 集合设置 Cookie 属性
Response.Cookies[Cookie名称].Value = 变量值;
2 也可以创建 HttpCookie 对象的一个实例并将该实例添加到 Cookies 集合中
HttpCookie hcCookie = new HttpCookie("Cookie的名称","值");
Response.Cookies.Add(hcCookie);
注意:
1 必须在 ASP.NET 页呈现给客户端之前创建 Cookie。例如,可以在 Page_Load 事件处理程序中编写 Cookie,但不能在 Page_Unload 事件处理程序中编写 Cookie。
2 如果不指定该 Cookie 的过期限制,则该 Cookie 将不会保留在客户端计算机上,当用户会话到期时该 Cookie 即到期。
3 Cookie 仅能存储 String 类型的值。在将任何非字符串值存储到 Cookie 中之前,必须将它们转换为字符串。对于多数数据类型而言,调用 ToString 方法即可。
扩充:
1 下面的代码示例演示一个名为 UserSettings 的 Cookie,并设置其 Font 和 Color 子项的值。它还将过期时间设置为明天。
Response.Cookies["UserSettings"]["Font"] = "Arial";
Response.Cookies["UserSettings"]["Color"] = "Blue";
Response.Cookies["UserSettings"].Expires = DateTime.Now.AddDays(1d); //最大的时期为DateTime.MaxValue;
2 通过创建 HttpCookie 对象的实例编写 Cookie!
创建 HttpCookie 类型的对象并为它分配名称。为 Cookie 的子项赋值并设置所有 Cookie 属性。将该 Cookie 添加到 Cookies 集合中。
HttpCookie myCookie = new HttpCookie("UserSettings");
myCookie["Font"] = "Arial";
myCookie["Color"] = "Blue";
myCookie.Expires = DateTime.Now.AddDays(1d);
Response.Cookies.Add(myCookie);
四 如何读取Cookie
使用 Cookie 名作为键从 Cookies 集合中读取字符串。
string 变量名=Request.Cookies[Cookie的名称].value;
扩充:
下面的示例读取名为 UserSettings 的 Cookie,然后读取名为 Font 的子键的值
if (Request.Cookies["UserSettings"] != null)
{
string userSettings;
if (Request.Cookies["UserSettings"]["Font"] != null)
{ userSettings = Request.Cookies["UserSettings"]["Font"]; }
}