共用方式為


HOW TO:刪除 Cookie

更新:2007 年 11 月

您無法直接刪除使用者電腦上的 Cookie。然而,您可以將 Cookie 的到期日設定為過去的日期,引導使用者的瀏覽器刪除 Cookie。使用者下一次要求定義域或路徑中設定 Cookie 的網頁時,瀏覽器會判斷 Cookie 已過期然後加以移除。

注意事項:

呼叫 Cookies 集合中的 Remove 方法會從伺服器端的集合移除 Cookie,因此不會將 Cookie 傳送至用戶端。然而,這個方法不會從用戶端移除 Cookie (如果 Cookie 已經存在的話)。

  1. 判斷 Cookie 是否存在,如果是的話,請使用相同名稱建立新的 Cookie。

  2. 將 Cookie 的到期日設定為過去的時間。

  3. 將 Cookie 加入 Cookies 集合物件。

    下列程式碼範例,示範了如何在 Cookie 上設定過去的到期日。

    If (Not Request.Cookies("UserPreferences1") Is Nothing) Then
        Dim myCookie As HttpCookie
        myCookie = New HttpCookie("UserPreferences1")
        myCookie.Expires = DateTime.Now.AddDays(-1D)
        Response.Cookies.Add(myCookie)
    End If
    
    if (Request.Cookies["UserSettings"] != null)
    {
        HttpCookie myCookie = new HttpCookie("UserSettings");
        myCookie.Expires = DateTime.Now.AddDays(-1d);
        Response.Cookies.Add(myCookie);
    }
    

編譯程式碼

這項範例需要:

  • ASP.NET Web 網頁。

  • 之前撰寫名為 UserSettings 的 Cookie,如同主題 HOW TO:撰寫 Cookie 中所說明。

穩固程式設計

基於安全性考量,您可以只讀取相同網域的網頁所設定之 Cookie。如果已設定 Cookie 的 Path 屬性,只有在網域這個路徑中的網頁和子資料夾,才能夠使用這個 Cookie。

當讀取特定 Cookie 值時,測試 Cookie 是否存在及是否具有值,否則會發生例外狀況。

安全性

瀏覽器只能將資料傳回原來建立 Cookie 的伺服器。然而,惡意的使用者卻可以存取 Cookie,並讀取其內容。不要在 Cookie 中存放機密的資訊,例如,使用者名稱或密碼。而是儲存可用來查閱伺服器上機密資訊的語彙基元 (Token)。此外,Cookie 可能已遭他人修改,因此您應該使用與避免跨站台指令碼處理攻擊的相同方法,處理 Cookie 中的任何資料。如需詳細資訊,請參閱 HOW TO:利用將 HTML 編碼套用至字串的方法,防止會在 Web 應用程式中發生的指令碼攻擊

請參閱

工作

HOW TO:撰寫 Cookie

HOW TO:讀取 Cookie

概念

ASP.NET Cookie 概觀

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

ASP.NET 狀態管理概觀