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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM