首页 > 代码库 > 操作COOKIE的封装类
操作COOKIE的封装类
1 /// <summary> 2 /// Coookie 管理类 3 /// </summary> 4 public class CookieManager 5 { 6 #region 获取 Cookie/Cookie值 7 /// <summary> 8 /// 获得Cookie的值 9 /// </summary> 10 /// <param name="cookieName">Cookie名称</param> 11 /// <returns>返回Cookie值</returns> 12 public static string GetValue(string cookieName) 13 { 14 return GetValue(cookieName, null); 15 } 16 17 /// <summary> 18 /// 获得Cookie子键值 19 /// </summary> 20 /// <param name="cookieName">Cookie名称</param> 21 /// <param name="key">Cookie子键名称</param> 22 /// <returns>返回Cookie子键值</returns> 23 public static string GetValue(string cookieName, string key) 24 { 25 return GetValue(GetCookie(cookieName), key); 26 } 27 28 /// <summary> 29 /// 获得Cookie子键值 30 /// </summary> 31 /// <param name="cookie">Cookie对象</param> 32 /// <param name="key">Cookie子键名称</param> 33 /// <returns>返回Cookie子键值</returns> 34 public static string GetValue(HttpCookie cookie, string key) 35 { 36 if (cookie != null) 37 { 38 if (cookie.HasKeys && !string.IsNullOrEmpty(key)) 39 return cookie.Values[key]; 40 else 41 return cookie.Value; 42 } 43 44 return string.Empty; 45 } 46 47 /// <summary> 48 /// 获取Cookie 49 /// </summary> 50 /// <param name="cookieName">Cookie名称</param> 51 /// <returns>返回HttpCookie对象</returns> 52 public static HttpCookie GetCookie(string cookieName) 53 { 54 HttpRequest request = HttpContext.Current.Request; 55 56 if (request != null && !string.IsNullOrEmpty(cookieName)) 57 return request.Cookies[cookieName]; 58 59 return null; 60 } 61 #endregion 62 63 #region 添加Cookie/带子键Cookie 64 /// <summary> 65 /// 添加Cookie 66 /// </summary> 67 /// <param name="cookieName">Cookie名称</param> 68 /// <param name="value">Cookie值</param> 69 public static void AddCookie(string cookieName, string value) 70 { 71 AddCookie(cookieName, value, null); 72 } 73 74 /// <summary> 75 /// 添加Cookie 76 /// </summary> 77 /// <param name="cookieName">Cookie名称</param> 78 /// <param name="value">Cookie值</param> 79 /// <param name="expires">Cookie到期时间</param> 80 public static void AddCookie(string cookieName, string value, DateTime? expires) 81 { 82 HttpCookie cookie = new HttpCookie(cookieName, value); 83 if (expires.HasValue) 84 { 85 cookie.Expires = expires.Value; 86 } 87 AddCookie(cookie); 88 } 89 90 /// <summary> 91 /// 添加带子键的Cookie(Cooike.Values) 92 /// </summary> 93 /// <param name="cookieName">Cookie名称</param> 94 /// <param name="keys">子键名称</param> 95 /// <param name="values">子键值</param> 96 public static void AddCookie(string cookieName, string[] keys, string[] values) 97 { 98 AddCookie(cookieName, keys, values, null); 99 }100 101 /// <summary>102 /// 添加带子键的Cookie(Cooike.Values)103 /// </summary>104 /// <param name="cookieName">Cookie名称</param>105 /// <param name="keys">子键名称</param>106 /// <param name="values">子键值</param>107 /// <param name="expires">Cookie到期时间</param>108 public static void AddCookie(string cookieName, string[] keys, string[] values, DateTime? expires)109 {110 if (keys.Length == values.Length)111 {112 HttpCookie cookie = new HttpCookie(cookieName);113 if (expires.HasValue)114 {115 cookie.Expires = expires.Value;116 }117 for (int i = 0; i < keys.Length; i++)118 {119 cookie.Values.Add(keys[i], values[i]);120 }121 AddCookie(cookie);122 }123 else124 {125 throw new Exception("Cookie子键名称的数量与子键值的数量不一致!");126 }127 }128 129 /// <summary>130 /// 添加Cookie131 /// </summary>132 /// <param name="cookie">Cookie对象</param>133 public static void AddCookie(HttpCookie cookie)134 {135 HttpResponse response = HttpContext.Current.Response;136 137 if (response != null)138 {139 response.Cookies.Add(cookie);140 }141 }142 143 #endregion144 145 #region 设置/修改Cookie146 /// <summary>147 /// 设置Cookie值148 /// </summary>149 /// <param name="cookieName">Cookie名称</param>150 /// <param name="value">Cookie值</param>151 public static void SetCookie(string cookieName, string value)152 {153 SetCookie(cookieName, value, null);154 }155 156 /// <summary>157 /// 设置Cookie值和过期时间158 /// </summary>159 /// <param name="cookieName">Cookie名称</param>160 /// <param name="value">Cookie值</param>161 /// <param name="expires">Cookie到期时间</param>162 public static void SetCookie(string cookieName, string value, DateTime? expires)163 {164 HttpCookie cookie = GetCookie(cookieName);165 if (cookie != null)166 {167 cookie.Value =http://www.mamicode.com/ value;168 if (expires.HasValue)169 {170 cookie.Expires = expires.Value;171 }172 SetCookie(cookie);173 }174 }175 176 /// <summary>177 /// 设置Cookie过期时间178 /// </summary>179 /// <param name="cookieName">Cookie名称</param>180 /// <param name="expires">Cookie到期时间</param>181 public static void SetCookie(string cookieName, DateTime expires)182 {183 SetCookie(cookieName, null, null, expires);184 }185 186 /// <summary>187 /// 设置/修改Cookie188 /// </summary>189 /// <param name="cookieName">Cookie名称</param>190 /// <param name="keys">子键名称</param>191 /// <param name="values">子键值</param>192 public static void SetCookie(string cookieName, string[] keys, string[] values)193 {194 SetCookie(cookieName, keys, values, null);195 }196 197 /// <summary>198 /// 设置/修改Cookie199 /// </summary>200 /// <param name="cookieName">Cookie名称</param>201 /// <param name="keys">子键名称</param>202 /// <param name="values">子键值</param>203 /// <param name="expires">Cookie到期时间</param>204 public static void SetCookie(string cookieName, string[] keys, string[] values, DateTime? expires)205 {206 HttpCookie cookie = GetCookie(cookieName);207 if (cookie != null)208 {209 if (expires.HasValue)210 {211 cookie.Expires = expires.Value;212 }213 if (keys != null && values != null)214 {215 if (keys.Length == values.Length)216 {217 for (int i = 0; i < keys.Length; i++)218 {219 if (cookie.HasKeys && !string.IsNullOrEmpty(keys[i]))220 cookie.Values.Set(keys[i], values[i]);221 }222 }223 else224 {225 throw new Exception("Cookie子键名称的数量与子键值的数量不一致!");226 }227 }228 SetCookie(cookie);229 }230 }231 232 /// <summary>233 /// 设置/修改Cookie234 /// </summary>235 /// <param name="cookie">Cookie对象</param>236 public static void SetCookie(HttpCookie cookie)237 {238 HttpResponse response = HttpContext.Current.Response;239 240 if (response != null)241 {242 response.SetCookie(cookie);243 }244 }245 #endregion246 247 #region 删除Cookie248 /// <summary>249 /// 删除Cookie250 /// </summary>251 /// <param name="cookieName">Cookie名称</param>252 public static void Remove(string cookieName)253 {254 HttpCookie cookie = new HttpCookie(cookieName);255 cookie.Expires = DateTime.Now.AddDays(-1);256 257 SetCookie(cookie);258 }259 260 /// <summary>261 /// 删除Cookie的子键262 /// </summary>263 /// <param name="cookieName">Cookie名称</param>264 /// <param name="keys">子键名称</param>265 public static void Remove(string cookieName, string[] keys)266 {267 HttpCookie cookie = GetCookie(cookieName);268 if (cookie != null)269 {270 if (cookie.HasKeys && keys != null)271 {272 for (int i = 0; i < keys.Length; i++)273 {274 cookie.Values.Remove(keys[i]);275 }276 }277 }278 279 SetCookie(cookie);280 }281 #endregion282 }
操作COOKIE的封装类
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。