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