ASP.NET中的Cookie对象

1.Cookie对象

    Cookie对象一般用于在客户端保存一些针对某个用户的信息。

    Cookie本质上只是一小段文本字符串,改字符串一般保存在用户计算机特定文件夹下的某个文件中,每个Cookie都保存到一个对应的文件中。它提供了在客户端存储用户特定信息的手段。例如保存用户登录某个网站的用户名、保存用户购物时选择的某些选项、保存是否已经投票以防止重复投票等。

    当用户访问某个服务器时,如果服务器要求将Cookie信息也传递过来,则浏览器就会将其附加到HTTP头文件中发送给服务器。另外,服务器也可以通知浏览器将某个Cookie信息保存到计算机上,但是,一旦将Cookie保存在客户端计算机上,则只有创建该Cookie的网站才能读取它。

    一般情况下,服务器都会给Cookie信息限制一个有效的时间段,当超过保存的有效期时,浏览器就会自动将其删除。如果没有设置Cookie的有效期,实际上只是将Cookie作为用户会话信息的一部分进行维护,当用户关闭浏览器时就会自动丢弃Cookie,而不会将其存储在用户的硬盘上。

    不过,由于有些网站会利用这种技术随意在客户端保存访问信息,导致用户对其很反感,因此,有些用户可能会通过浏览器设置禁用Cookie,所以使用这种技术时,最好先检测是否可以在客户端存储Cookie。

 1 protected void Page_Load(object sender ,EventArgs e)
 2 {
 3    if(Context.Request.Browser.Cookies==false)
 4 {
 5 Label1.Text="客户端禁用了Cookie。";
 6 return;
 7 
 8 }
 9 
10 //读取Cookie
11 HttpCookie cookie=Request.Cookie.Get("userName");
12 if(cookie=null)
13 {
14 //创建Cookie
15 cookie=new HttpCookie("userName","张三");
16 cookie.Expires=DateTime.Now.AddDays(1);
17 
18 //写入Cookie
19 Response.Cookies.Set(cookie);
20 
21 }
22  Label1.Text="<hr/>";
23 
24 foreach(string s in  Request.Cookies.AllKeys)
25   HttpCookie c=Rquest.Cookies.Get(s);
26   Label1.Text+="Cookie名 :userName<br/>"+"值:"+cookie.Value+"<br/>"+"过期日期:"+cookie.Expires+<hr/>";
27 }
}

 这篇文章取自 马骏.HTML5与ASP.NET程序设计教程(第2版).人民邮电出版社。

原文地址:https://www.cnblogs.com/xianfengzhike/p/5495630.html