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版).人民郵電出版社。