Cookie的簡單用法


 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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM