ASP.NET 实践:写入 Cookie
Cookies 提供了一種在 Web 應(yīng)用程序中存儲(chǔ)特定用戶信息(如歷史記錄或用戶偏好)的方式。Cookie 是連同請(qǐng)求和回應(yīng)一起在 Web 服務(wù)器和客戶端之間來回傳送的少量文本。Web 應(yīng)用程序能夠在用戶訪問網(wǎng)站的時(shí)候讀取 Cookie 中所包含的信息。
瀏覽器負(fù)責(zé)對(duì)客戶端計(jì)算機(jī)中的 Cookies 進(jìn)行管理。Cookies 是使用 HttpResponse 對(duì)象被發(fā)送到客戶端的,該對(duì)象暴露了一個(gè)名為 Cookies 的屬性集合。任何你想要在 Web 應(yīng)用程序中發(fā)送到瀏覽器的 Cookies 都必須被添加到這個(gè)集合中。在你寫入一個(gè)新 Cookie 的時(shí)候,你必須指定 Name 和 Value 屬性。每個(gè) Cookie 都必須擁有一個(gè)唯一的名稱,這樣 Web 應(yīng)用程序才能夠在瀏覽器的未來請(qǐng)求中對(duì)它進(jìn)行識(shí)別。
把 Cookie 寫入到用戶計(jì)算機(jī)中有兩種方式。你既能夠直接在 Cookies 集合中設(shè)置 Cookie 的屬性,也能夠創(chuàng)建一個(gè)新的 HttpCookie 對(duì)象實(shí)例并把它添加到 Cookies 集合中。你必須在 ASP.NET 頁面被呈現(xiàn)到客戶端之前創(chuàng)建 Cookies。例如,你可以在 Page_Load 事件處理器中寫入一個(gè) Cookie,但是不能夠在 Page_Unload 事件處理器中寫入 Cookie。更多關(guān)于頁面生命周期的信息,請(qǐng)參考:[ASP.NET 頁面生命周期概覽]。
更多信息,請(qǐng)參考:[ASP.NET Cookies 概覽]。
在 Cookies 集合中設(shè)置屬性來寫入 Cookie
-
在你想要寫入 Cookie 的 ASP.NET 頁面中,在 Cookies 集合中指定 Cookie 的屬性。
如下代碼實(shí)例說明了一個(gè)名為 UserSettings 的 Cookie,并為子鍵 Font 和 Color 設(shè)置了值。同時(shí)也把失效時(shí)間設(shè)置成了明天。
Response.Cookies["UserSettings"]["Font"] = "Arial"; Response.Cookies["UserSettings"]["Color"] = "Blue"; Response.Cookies["UserSettings"].Expires = DateTime.Now.AddDays(1d);
創(chuàng)建 HttpCookie 對(duì)象的實(shí)例來寫入 Cookie
創(chuàng)建 HttpCookie 類型的一個(gè)對(duì)象實(shí)例并為其指定名稱。
指定 Cookie 子鍵中的值并設(shè)置 Cookie 的屬性。
把這個(gè) Cookie 添加到 Cookies 集合中。
如下代碼實(shí)例說明了一個(gè)名為 myCookie 的 HttpCookie 對(duì)象實(shí)例,用來展示一個(gè)名為 UserSettings 的 Cookie。
HttpCookie myCookie = new HttpCookie("UserSettings"); myCookie["Font"] = "Arial"; myCookie["Color"] = "Blue"; myCookie.Expires = DateTime.Now.AddDays(1d); Response.Cookies.Add(myCookie);健壯編程
默認(rèn)時(shí),Cookies 在相同域中的所有頁面中被共享,但是你能夠通過設(shè)置它們的 Path 屬性的方式把 Cookies 限制到一個(gè)特定的子目錄。要允許 Cookie 能夠被應(yīng)用程序所有目錄中的所有頁面所訪問,請(qǐng)?jiān)趹?yīng)用程序根目錄中的頁面中對(duì)它進(jìn)行設(shè)置,并且不要設(shè)置 Path 屬性。
如果你沒有指定 Cookie 的有效期,那么這個(gè) Cookie 將無法在客戶計(jì)算機(jī)中被持續(xù)保持,并且會(huì)連同用戶的會(huì)話狀態(tài)一起失效。
Cookies 只能夠存儲(chǔ) String 類型的值。你必須在存儲(chǔ)到 Cookie 之前把任何非字符串的值轉(zhuǎn)換成字符串。大部分?jǐn)?shù)據(jù)類型通過調(diào)用 ToString 方法就能夠?qū)崿F(xiàn)。更多關(guān)于數(shù)據(jù)類型轉(zhuǎn)換成字符串的信息,請(qǐng)參考相應(yīng)類型的[ToString 方法]。
安全性
不要在 Cookie 中存儲(chǔ)機(jī)密信息(如用戶名稱或密碼)。更多關(guān)于 Cookie 安全性的信息請(qǐng)參考:[ASP.NET Cookies 概覽]。
轉(zhuǎn)載于:https://www.cnblogs.com/Laeb/archive/2007/01/13/619626.html
總結(jié)
以上是生活随笔為你收集整理的ASP.NET 实践:写入 Cookie的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 很好听的一首歌
- 下一篇: C#反射实例No.1