HttpCookie 是一個在.NET Framework中用于管理和操作HTTP Cookie的類。它提供了一種方便的方式來創建、設置、讀取和刪除Cookie。
Cookie是一種在客戶端和服務器之間傳遞數據的機制,用于跟蹤用戶的會話狀態和存儲用戶相關的信息。它通常由服務器發送給客戶端,并由客戶端保存在瀏覽器中。
HttpCookie 類提供了以下屬性和方法:
- Name: 獲取或設置Cookie的名稱。
- Value: 獲取或設置Cookie的值。
- Expires: 獲取或設置Cookie的過期時間。
- Domain: 獲取或設置Cookie的域名。
- Path: 獲取或設置Cookie的路徑。
- Secure: 獲取或設置一個布爾值,指示是否使用安全連接(HTTPS)發送Cookie。
- HttpOnly: 獲取或設置一個布爾值,指示Cookie是否僅在HTTP請求中可見,而不允許客戶端腳本訪問它。
- SameSite: 獲取或設置Cookie的SameSite屬性,用于控制Cookie在跨站點請求中的發送行為。
- ToString(): 將HttpCookie對象轉換為字符串表示形式。
通過使用HttpCookie類,開發人員可以輕松地創建和管理HTTP Cookie。它在Web應用程序中廣泛應用,用于存儲和傳遞與用戶會話相關的數據。
以下是通過HttpCookie建立工具類的代碼,可根據具體需求調整
using System;
using System.Web;namespace Wing.Framework.Utility
{/// <summary>/// Cookie幫助類/// </summary>public class Cookie{/// <summary>/// 取Cookie/// </summary>/// <param name="name"></param>/// <returns></returns>public static HttpCookie Get(string name){return HttpContext.Current.Request.Cookies[name];}/// <summary>/// 取Cookie值/// </summary>/// <param name="name"></param>/// <returns></returns>public static string GetValue(string name){var httpCookie = Get(name);if (httpCookie != null)return httpCookie.Value;elsereturn string.Empty;}/// <summary>/// 移除Cookie/// </summary>/// <param name="name"></param>public static void Remove(string name){Cookie.Remove(Cookie.Get(name));}public static void Remove(HttpCookie cookie){if (cookie != null){cookie.Expires = DateTime.Now;Cookie.Save(cookie);}}/// <summary>/// 保存Cookie/// </summary>/// <param name="name"></param>/// <param name="value"></param>/// <param name="expiresHours"></param>public static void Save(string name, string value, int expiresHours = 0){var httpCookie = Get(name);if (httpCookie == null)httpCookie = Set(name);httpCookie.Value = value;Cookie.Save(httpCookie, expiresHours);}public static void Save(HttpCookie cookie, int expiresHours = 0){string domain = Fetch.ServerDomain;string urlHost = HttpContext.Current.Request.Url.Host.ToLower();if (domain != urlHost)cookie.Domain = domain;if (expiresHours > 0)cookie.Expires = DateTime.Now.AddHours(expiresHours);HttpContext.Current.Response.Cookies.Add(cookie);}public static HttpCookie Set(string name){return new HttpCookie(name);}}
}
12