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 "";
}
}
}