HOW TO:撰寫 Cookie

更新:2007 年 11 月

Cookie 提供在 Web 應用程式中儲存使用者特定資訊的方法,例如記錄或使用者偏好設定。Cookie 是在 Web 伺服器和用戶端之間,伴隨要求和回應傳送的一小段文字。Cookie 包含 Web 應用程式能夠在使用者造訪網站時讀取的資訊。

瀏覽器會管理用戶端電腦上的 Cookie。Cookie 會使用 HttpResponse 物件傳送到用戶端,其會公開稱為 Cookies 的屬性。想要 Web 應用程式傳送至瀏覽器的任何 Cookie 都必須加入這個集合中。當您撰寫新的 Cookie 時,必須指定 NameValue。每個 Cookie 都有唯一的名稱,因此當瀏覽器將來搭配要求傳送 Cookie 時,Web 應用程式就能夠辨識它。

有兩種方法可以將 Cookie 寫入使用者的電腦。您可以在 Cookies 集合直接設定 Cookie 的屬性,或是建立 HttpCookie 物件的執行個體,然後再加入 Cookies 集合。您必須在 ASP.NET 網頁呈現至用戶端之前就建立 Cookie。例如,您可以在 Page_Load 事件處理常式撰寫 Cookie,但是不能在 Page_Unload 事件處理常式撰寫 Cookie。如需有關網頁生命週期的詳細資訊,請參閱 ASP.NET 網頁存留週期概觀

如需詳細資訊,請參閱 ASP.NET Cookie 概觀

  • 在想要撰寫 Cookie 的 ASP.NET 網頁中,指派屬性給 Cookies 集合中的 Cookie。

    下列程式碼範例會示範名為 UserSettings 的 Cookie,搭配子機碼 Font 和 Color 集的值。這個範例也會將到期時間設定為明天。

    Response.Cookies("UserSettings")("Font") = "Arial"
    Response.Cookies("UserSettings")("Color") = "Blue"
    Response.Cookies("UserSettings").Expires = DateTime.Now.AddDays(1)
    
    Response.Cookies["UserSettings"]["Font"] = "Arial";
    Response.Cookies["UserSettings"]["Color"] = "Blue";
    Response.Cookies["UserSettings"].Expires = DateTime.Now.AddDays(1d);
    
  1. 建立型別 HttpCookie 的物件並指派名稱。

  2. 將值指派給 Cookie 的子機碼然後設定任何 Cookie 屬性。

  3. 將 Cookie 加入 Cookies 集合。

    下列程式碼範例會示範名為 myCookie 的 HttpCookie 物件執行個體,用來表示名為 UserSettings 的 Cookie。

    Dim myCookie As HttpCookie = New HttpCookie("UserSettings")
    myCookie("Font") = "Arial"
    myCookie("Color") = "Blue"
    myCookie.Expires = Now.AddDays(1)
    Response.Cookies.Add(myCookie)
    
    HttpCookie myCookie = new HttpCookie("UserSettings");
    myCookie["Font"] = "Arial";
    myCookie["Color"] = "Blue";
    myCookie.Expires = DateTime.Now.AddDays(1d);
    Response.Cookies.Add(myCookie);
    

穩固程式設計

根據預設,相同網域的所有網頁會共用 Cookie,但是您可以設定 Path 屬性以便將 Cookie 限制在網站的特定子資料夾中。若要允許所有應用程式資料夾中的所有網頁擷取 Cookie,請在應用程式根資料夾的網頁上設定 Cookie,並且請勿設定 Path 屬性。

如果您並未指定 Cookie 的到期限制,Cookie 就不會保存在用戶端電腦上,而當使用者工作階段過期時 Cookie 也會過期。

Cookie 只能儲存型別 String 的值。在 Cookie 中儲存之前,您必須將任何非字串值轉換為字串。呼叫 ToString 方法對大部分的資料型別而言已經足夠。如需詳細資訊,請參閱想要保存之資料型別的 ToString 方法。

安全性

不要在 Cookie 中存放機密的資訊,例如使用者名稱或密碼。如需 Cookie 安全性的詳細資訊,請參閱 ASP.NET Cookie 概觀

請參閱

工作

HOW TO:讀取 Cookie

HOW TO:刪除 Cookie

概念

ASP.NET Cookie 概觀

Web 應用程式的基本安全性實行方式

ASP.NET 狀態管理概觀