首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> .NET 網頁程式設計 >> ASP.NET 基礎 >> 關於ASP.NET

ASP.NET Cookie 操作完整封裝類別:讀寫刪一站式管理

     編輯:關於ASP.NET

在 ASP.NET 開發中,Cookie 是維持用戶狀態、儲存偏好設定的常用機制。但原生 HttpCookie 操作較為繁瑣,特別是處理子鍵值集合、過期時間、刪除邏輯時容易出錯。本文提供一個完整的 CookieFramework 靜態類別(VB.NET 實作),封裝了寫入單一 Cookie、寫入 Cookie 集合、讀取、刪除等核心功能,開箱即用,大幅簡化開發流程。

核心功能一覽

  • WriteCookie:寫入單一鍵值對,可指定過期天數
  • WriteCookies:操作 Cookie 子鍵值集合,自動處理新增與更新
  • ReadCookie:安全讀取單一 Cookie 值,不存在回傳 Nothing
  • ReadCookies:讀取 Cookie 集合中指定子鍵值
  • DeleteCookie:刪除整個 Cookie(含所有子鍵)
  • DeleteCookies:精確刪除 Cookie 集合中的特定子項

程式碼實作精華

Imports System.Web.HttpContext
Public Class CookieFramework
    ' 寫入單一 Cookie
    Public Shared Function WriteCookie(ByVal CookieName As String, 
        ByVal CookieValue As String, ByVal ExpiresDate As Integer) As Boolean
        Dim aCookie As New HttpCookie(CookieName)
        aCookie.Value = CookieValue
        aCookie.Expires = DateTime.Now.AddDays(ExpiresDate)
        System.Web.HttpContext.Current.Response.Cookies.Add(aCookie)
    End Function

    ' 寫入 Cookie 子鍵值集合
    Public Shared Function WriteCookies(ByVal CookieName As String, 
        ByVal CookieItem As String, ByVal ItemValue As String, 
        ByVal ExpiresDate As Integer) As Boolean
        Dim aCookie As HttpCookie
        If Current.Request.Cookies(CookieName) Is Nothing Then
            aCookie = New HttpCookie(CookieName)
        Else
            aCookie = Current.Request.Cookies(CookieName)
        End If
        aCookie.Values(CookieItem) = ItemValue
        aCookie.Expires = DateTime.Now.AddDays(ExpiresDate)
        System.Web.HttpContext.Current.Response.Cookies.Add(aCookie)
    End Function
    ' ... 其餘方法同理封裝
End Class

使用範例

' 寫入用戶偏好語言,保留 30 天
CookieFramework.WriteCookie("UserLang", "zh-TW", 30)

' 寫入購物車多項商品
CookieFramework.WriteCookies("Cart", "Item001", "2", 7)
CookieFramework.WriteCookies("Cart", "Item002", "1", 7)

' 讀取
Dim lang As String = CookieFramework.ReadCookie("UserLang")
Dim qty As String = CookieFramework.ReadCookies("Cart", "Item001")

注意事項與最佳實踐

  1. 安全性:敏感資料請勿直接存放 Cookie,建議加密或改用 Session/Server-side 儲存
  2. 大小限制:單一 Cookie 不超過 4KB,總數受瀏覽器限制
  3. SameSite 屬性:現代瀏覽器預設 Lax 模式,跨站請求需額外設定
  4. GDPR 合規:歐盟用戶需明確同意才能寫入非必要 Cookie

此封裝類別已在多個實務專案驗證,穩定可靠,建議納入專案共用函式庫,統一管理 Cookie 操作邏輯。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved