ASP.NET2.0揭祕讀書筆記五——維護應用程式狀態之cookie
瀏覽器Cookies用於關聯一些文字到網站的每一個使用者。
使用瀏覽器cookie
當Web伺服器端建立一個cookie時,一個附加的HTTP首部在瀏覽器顯示頁面時被髮送到瀏覽器。HTTP首部類似如下形式:
Set-Cookie:message=Hello
Set-Cookie首部使得瀏覽器建立一個名為message的cookie包含值Hello。
在瀏覽器建立cookie以後,它從相同的應用程式請求頁面時都將會把cookie的資訊傳送給Web伺服器端。
一個cookie就是一段文字,cookie只用用於儲存字串值。
實際上,我們可以儲存兩種型別的cookie,一種是會話cookie,一種是持久化cookie。會話cookie只儲存在記憶體中,關閉瀏覽器就消失了,持久化cookie則被儲存到使用者電腦上,可以持久化。注意,持久化cookie是對瀏覽器獨立的,即不同瀏覽器建立的cookie儲存的位置不同,也不能共享。
另外,cookie儲存的資訊都是以明文形式的,所以敏感資訊不要儲存到cookie上。
cookie的安全性限制
cookie對瀏覽器獨立
cookie對域名獨立
一個域名儲存的cookie總大小不能超過4096byte。這個大小的限制,包含所有的cookie名稱和值在內。大多數瀏覽器限制一個域名不超過20個cookie。
建立cookie
可以通過給Response.Cookies集合新增cookie來建立新的cookie。Response.Cookies集合包含所有Web伺服器端傳送到瀏覽器的cookie。
Response.Cookies["message"].Value = txtCookieValue.Text;
以上程式碼只建立一個會話cookie,關閉瀏覽器就會消失。如果需要建立持久化cookie,則需要為cookie指定一個過期時間。
Response.Cookies["counter"].Value = counter.ToString();
Response.Cookies["counter"].Expires = DateTime.Now.AddYears(2);
讀取cookie
Request.Cookies集合可以讀取cookie。
if (Request.Cookies["message"] != null)
lblCookieValue.Text = Request.Cookies["message"].Value;
設定cookie屬性
HttpCookie類代表cookie,當建立或讀取一個cookie時,可以使用該類下面的這些屬性:
Domain——設定關聯cookie的域名;
Expires——通過給定一個過期時間來建立一個持久化cookie;
HasKeys——用於指定一個cookie是否是一個多值cookie;
HttpOnly——用於避免cookie被Javascript訪問;
Name——cookie的名稱;
Path——關聯到cookie的路徑,預設為/;
Value——讀寫cookie的值;
Secure——用於指定cookie需要通過安全Socket層連線傳遞;
Values——使用多值cookie時,用於讀寫特定的值。
刪除cookie
設定cookie的Expires的值為過去時間即可。
使用多值cookie
因為對單個域名瀏覽器不能儲存超過20個cookie,可以通過建立多值cookie來突破該限制。多值cookie是一個包含子鍵的單一cookie。可以根據需要建立任意數量的子鍵。
Response.Cookies["preferences"]["firstName"] = txtFirstName.Text;
Response.Cookies["preferences"]["lastName"] = txtLastName.Text;
Response.Cookies["preferences"]["favoriteColor"] = txtFavoriteColor.Text;
Response.Cookies["preferences"].Expires = DateTime.MaxValue;
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/12639172/viewspace-594858/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- ASP.NET2.0揭祕讀書筆記六——使用會話狀態SessionASP.NET筆記會話Session
- ASP.NET2.0揭祕讀書筆記之八——頁面輸出快取ASP.NET筆記快取
- 《CSS揭祕》讀書筆記CSS筆記
- 《SIP揭祕》讀書筆記筆記
- 《揭祕跨境電商》讀書筆記筆記
- asp.net2.0揭祕讀書筆記三:使用主題設計網站ASP.NET筆記網站
- 書寫高質量程式碼之狀態維護
- 讀書筆記之五筆記
- asp.net2.0揭祕讀書筆記四:GridView控制元件更新資料處理併發問題ASP.NET筆記View控制元件
- CSS揭祕之形狀CSS
- 編寫高質量程式碼之狀態維護
- asp.net 2.0揭祕讀書筆記二:使用Rich控制元件ASP.NET筆記控制元件
- 書訊:《Android應用開發揭祕》Android
- 川大主用ATC系統維護筆記(五)筆記
- asp.net 2.0揭祕讀書筆記一:ASP.NET和.NET FrameworkASP.NET筆記Framework
- 《CSS揭祕》筆記(一)CSS筆記
- 《Pro Android Graphics》讀書筆記之第五節Android筆記
- 五月的讀書筆記筆記
- 華章揭祕系列精品圖書(《Android應用開發揭祕》、《GWT揭祕》、《Spring技術內幕》)AndroidSpring
- 反應式程式設計讀書筆記程式設計筆記
- ASP.NET 2.0揭祕讀書筆記七——使用使用者配置檔案ProfileASP.NET筆記
- 人月神話讀書筆記(五) (轉)筆記
- 「構建安全的 PHP 應用」讀書筆記PHP筆記
- 《Google SRE 運維解密》讀書筆記Go運維解密筆記
- JVM讀書筆記之OOMJVM筆記OOM
- 浪潮之巔讀書筆記筆記
- 《黑客祕笈——滲透測試實用指南》讀書筆記(1)黑客筆記
- 揭祕ORACLE備份之----RMAN之五(CATALOG)Oracle
- 《css揭祕》學習筆記(一)CSS筆記
- 揭祕Android應用推廣的五大灰色渠道Android
- 【讀書筆記】:《編寫可維護的JavaScript》第07章 事件處理筆記JavaScript事件
- 讀書筆記#五導家-設計觀筆記
- 「理解Unix程式」讀書筆記筆記
- 《高效能iOS應用開發》讀書筆記iOS筆記
- 讀書筆記:高效能PHP應用開發筆記PHP
- 星白贈書之讀書筆記(1)筆記
- 《拆掉思維裡的牆》讀書筆記筆記
- 《Maven實戰》之讀書筆記Maven筆記