Cookie大家肯定很熟悉了,平時用的地方很多,現在我簡單的介紹其的增刪改查的方法,當然核心還是添加現在先給一個簡單的圖來說明添加Cookie的兩種方式
現在開始慢慢解釋以上的圖
第一步:添加Cookie
添加Cookie有兩種方式一種帶子鍵的另外一種沒有。其實我們可以把Cookie當做一個對象
1:沒有子鍵的添加
我們先給我們創建的Cookie取一個名字,然后在這個Cookie進行賦值,當然可以設置Cookie的其他屬性比喻過期時間是咱們最常用的,最后添加response中,這樣就添加一個Cookie了。
2:有子鍵的添加
同樣需要給新建的Cookie取一個名字,然后給Cookie對象添加子鍵,并且賦值
#region 添加Cookie /// <summary> /// 設置一個cookie值 /// </summary> /// <param name="key">鍵</param> /// <param name="value">值</param> /// <param name="duration">持續時間,默認單位為4小時</param> public static void SetCookie(string cookieName, string key, string value, double duration = 4.0) { if (HttpContext.Current == null || string.IsNullOrEmpty(key) || string.IsNullOrEmpty(value)) return; var cookie = new HttpCookie(cookieName);//創建并命名新的Cookie。 cookie.Expires = DateTime.Now.AddHours(4.0);//設置過期時間 if (!string.IsNullOrEmpty(key)) { cookie.Values.Add(key, value);//有子鍵 } else { cookie.Value = value;//沒有子鍵 } HttpContext.Current.Response.Cookies.Add(cookie); } #endregion
第二步:刪除Cookie
刪除Cookie同樣考慮是否存在子鍵,如果有子鍵就刪除這個子鍵,沒有沒有直接就移除這個Cookie
#region 刪除Cookie /// <summary> /// 刪除Cookie /// </summary> /// <param name="cookieName">Cookie名稱</param> /// <param name="key">Cookie子鍵</param> public static void Delete(string cookieName, string key) { HttPResponse response = HttpContext.Current.Response; if (response != null) { HttpCookie cookie = response.Cookies[cookieName]; if (cookie != null) { if (!string.IsNullOrEmpty(key) && cookie.HasKeys) { cookie.Values.Remove(key); } else { response.Cookies.Remove(cookieName); } } } } #endregion
第三步:獲取Cookie
獲取Cookie也是通過Cookie名稱或者Cookie名稱和子鍵來獲取看以下代碼
#region 獲取Cookie /// <summary> /// 根據Cookie名稱和子鍵獲取Cookie值(子鍵可為空) /// </summary> /// <param name="CookieName">Cookie名稱</param> /// <param name="Key">Cookie子鍵</param> /// <returns></returns> public static string GetValue(string cookieName, string key) { if (string.IsNullOrEmpty(cookieName) || HttpContext.Current.Request == null) { return ""; } if (HttpContext.Current.Request.Cookies[cookieName] != null) { if (!string.IsNullOrEmpty(key) && HttpContext.Current.Request.Cookies[cookieName].HasKeys) { return HttpContext.Current.Request.Cookies[cookieName].Values[key]; } else { return HttpContext.Current.Request.Cookies[cookieName].Value; } } return ""; } #endregion
新聞熱點
疑難解答