using NIU.Core; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Web; namespace CP.Common { /// /// Cookie类 /// public class Cookies { /// /// cookie域 /// private static string _Domain = ".niu.cn"; /// /// cookie名称 /// public static string _CookieAdminName = "_NIU_ADMIN"; /// /// cookie名称(权限) /// public static string _AuthorityName = "_NIU_ADMIN_Authority"; /// /// 获取cookie /// /// cookie名称 /// public static string Get(string cookieName, string domain = ".niu.cn") { if (HttpContext.Current.Request.Cookies != null && HttpContext.Current.Request.Cookies[cookieName] != null) { //HttpContext.Current.Request.Cookies[cookieName].Domain = domain; string value = HttpContext.Current.Request.Cookies[cookieName].Value.ToString(); return Encryption.Get(value, _CookieAdminName); } return ""; } /// /// 写入cookie /// /// cookie名称 /// cookie值 /// 过期时间(分钟) public static void Set(string cookieName, string cookieValue, int Expires = 0, string domain = ".niu.cn") { HttpCookie cookie = HttpContext.Current.Request.Cookies[cookieName]; if (cookie == null) { cookie = new HttpCookie(cookieName); } cookie.Value = Encryption.Set(cookieValue, _CookieAdminName); //cookie.Domain = domain; cookie.HttpOnly = true; if (Expires > 0) cookie.Expires = DateTime.Now.AddMinutes(Expires); else cookie.Expires = DateTime.Now.AddMinutes(60); HttpContext.Current.Response.AppendCookie(cookie); } /// /// 清除COOKIES /// public static void Delete(string cookieName, string domain = ".niu.cn") { //HttpContext.Current.Response.Cookies[cookieName].Domain = domain; HttpContext.Current.Response.Cookies[cookieName].Expires = DateTime.Now.AddDays(-600); } /// /// 移除Cookies /// /// public static void RemoveCookies(string cookiesName) { if (string.IsNullOrEmpty(cookiesName)) return; HttpCookie cookie = HttpContext.Current.Request.Cookies[cookiesName]; if (null != cookie) { //HttpContext.Current.Response.Cookies[cookiesName].Domain = _Domain; HttpContext.Current.Response.Cookies[cookiesName].Expires = DateTime.Now.AddDays(-600); HttpContext.Current.Response.Cookies[cookiesName].Values.Clear(); cookie.Expires = DateTime.Now.AddDays(-5); HttpContext.Current.Response.Cookies.Add(cookie); } } /// /// 写Cookie值 /// /// 键 /// 名 /// httponly默认true /// 默认480分钟 public static void WriteCookie(string strName, string strValue, int expires = 480, bool httponly = true, string domain = ".niu.cn") { HttpCookie cookie = HttpContext.Current.Request.Cookies[strName]; if (cookie == null) { cookie = new HttpCookie(strName); } cookie.HttpOnly = httponly; //cookie.Domain = domain; cookie.Value = HttpContext.Current.Server.UrlEncode(strValue); if (expires > 0) cookie.Expires = DateTime.Now.AddMinutes(expires); HttpContext.Current.Response.Cookies.Add(cookie); } public static string GetCookieBy(string strName, string domain = ".niu.cn") { if (HttpContext.Current.Request.Cookies != null && HttpContext.Current.Request.Cookies[strName] != null) { //HttpContext.Current.Request.Cookies[strName].Domain = domain; return HttpContext.Current.Server.UrlDecode(HttpContext.Current.Request.Cookies[strName].Value.ToString()); } return ""; } } }