代码如下 | 复制代码 |
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.IO; using System.Runtime.Serialization; using System.Runtime.Serialization.Formatters.Binary; using System.Web.Security; using System.Web.UI; using System.Web.UI.HtmlControls; using System.Web.UI.WebControls; using System.Data; using System.Configuration; namespace Bll { /// /// Cookie操作类 /// public class CookieHelper { #region 保存Cookie /// /// 保存Cookie /// /// Cookie名称 /// Cookie值 /// Cookie过期时间(小时),0为关闭页面失效 public static void SaveCookie(string CookieName, object CookieValue, double CookieTime) { HttpCookie myCookie = new HttpCookie(CookieName); DateTime now = DateTime.Now; myCookie.Value = ConvertObjectToString(CookieValue); if (CookieTime != 0) myCookie.Expires = now.AddHours(CookieTime); if (HttpContext.Current.Response.Cookies[CookieName] != null) HttpContext.Current.Response.Cookies.Remove(CookieName); HttpContext.Current.Response.Cookies.Add(myCookie); } private static string ConvertObjectToString(object CookieValue) { BinaryFormatter bf = new BinaryFormatter(); MemoryStream ms = new MemoryStream(); bf.Serialize(ms, CookieValue); byte[] result = new byte[ms.Length]; result = ms.ToArray(); string temp = System.Convert.ToBase64String(result); ms.Flush(); ms.Close(); return temp; } #endregion #region 取得Cookie /// /// 取得Cookie /// /// Cookie名称 /// public static object GetCookie(string CookieName) { HttpCookie myCookie = new HttpCookie(CookieName); myCookie = HttpContext.Current.Request.Cookies[CookieName]; if (myCookie != null) return ConvertStringToObject(myCookie.Value); else return null; } private static object ConvertStringToObject(string value) { byte[] b = System.Convert.FromBase64String(value); MemoryStream ms = new MemoryStream(b, 0, b.Length); BinaryFormatter bf = new BinaryFormatter(); return bf.Deserialize(ms); } #endregion #region 清除Cookie /// /// 清除Cookie /// /// Cookie名称 public static void ClearCookie(string CookieName) { HttpCookie myCookie = new HttpCookie(CookieName); DateTime now = DateTime.Now; myCookie.Expires = now.AddYears(-2); HttpContext.Current.Response.Cookies.Add(myCookie); } #endregion } } |