来看一下COOKIES公用操作类
///
/// Cookie 操作帮助类
///
public class CookieHelper
{
#region 写cookie值
///
/// 写cookie值
///
/// 名称
/// 值
public static void Write(string strName, string strValue)
{
HttpCookie cookie = HttpContext.Current.Request.Cookies[strName];
if (cookie == null)
{
cookie = new HttpCookie(strName);
}
cookie.Value = strValue;
HttpContext.Current.Response.AppendCookie(cookie);
}
///
/// 写cookie值
///
/// 名称
/// 值
/// 域 例如:contoso.com
public static void WriteWithDomain(string strName, string strValue, string doMain)
{
HttpCookie cookie = HttpContext.Current.Request.Cookies[strName];
if (cookie == null)
{
cookie = new HttpCookie(strName);
}
cookie.Value = strValue;
cookie.Domain = doMain;
HttpContext.Current.Response.AppendCookie(cookie);
}
///
/// 写cookie值
///
/// 名称
/// 键名
/// 值
public static void Write(string strName, string key, string strValue)
{
HttpCookie cookie = HttpContext.Current.Request.Cookies[strName];
if (cookie == null)
{
cookie = new HttpCookie(strName);
}
cookie[key] = strValue;
HttpContext.Current.Response.AppendCookie(cookie);
}
///
/// 写cookie值
///
/// 名称
/// 键名
/// 值
/// 域 例如:contoso.com
public static void WriteWithDomain(string strName, string key, string strValue
, string doMain)
{
HttpCookie cookie = HttpContext.Current.Request.Cookies[strName];
if (cookie == null)
{
cookie = new HttpCookie(strName);
}
cookie.Domain = doMain;
cookie[key] = strValue;
HttpContext.Current.Response.AppendCookie(cookie);
}
///
/// 写cookie值
///
/// 名称
/// 值
/// 过期时间(分钟)
public static void Write(string strName, string strValue, int expires)
{
HttpCookie cookie = HttpContext.Current.Request.Cookies[strName];
if (cookie == null)
{
cookie = new HttpCookie(strName);
}
cookie.Value = strValue;
cookie.Expires = System.DateTime.Now.AddMinutes(expires);
HttpContext.Current.Response.AppendCookie(cookie);
}
///
/// 写cookie值
///
/// 名称
/// 值
/// 过期时间(分钟)
/// 域 例如:contoso.com
public static void WriteWithDomain(string strName, string strValue, int expires
, string doMain)
{
HttpCookie cookie = HttpContext.Current.Request.Cookies[strName];
if (cookie == null)
{
cookie = new HttpCookie(strName);
}
cookie.Domain = doMain;
cookie.Value = strValue;
cookie.Expires = System.DateTime.Now.AddMinutes(expires);
HttpContext.Current.Response.AppendCookie(cookie);
}
///
/// 写cookie值
///
/// 名称
/// 键名
/// 值
/// 过期时间(分钟)
public static void Write(string strName, string key, string strValue, int expires)
{
HttpCookie cookie = HttpContext.Current.Request.Cookies[strName];
if (cookie == null)
{
cookie = new HttpCookie(strName);
}
cookie[key] = strValue;
cookie.Expires = System.DateTime.Now.AddMinutes(expires);
HttpContext.Current.Response.AppendCookie(cookie);
}
///
/// 写cookie值
///
/// 名称
/// 键名
/// 值
/// 过期时间(分钟)
/// 域 例如:contoso.com
public static void WriteWithDomain(string strName, string key, string strValue
, int expires, string doMain)
{
HttpCookie cookie = HttpContext.Current.Request.Cookies[strName];
if (cookie == null)
{
cookie = new HttpCookie(strName);
}
cookie.Domain = doMain;
cookie[key] = strValue;
cookie.Expires = System.DateTime.Now.AddMinutes(expires);
HttpContext.Current.Response.AppendCookie(cookie);
}
#endregion
#region 读cookie值
///
/// 读cookie值
///
/// 名称
/// cookie值
public static string Read(string strName)
{
if (HttpContext.Current.Request.Cookies != null
&& HttpContext.Current.Request.Cookies[strName] != null)
{
return HttpContext.Current.Request.Cookies[strName].Value;
}
else
{
return string.Empty;
}
}
///
/// 读cookie值
///
/// 名称
/// 键名
/// cookie值
public static string Read(string strName, string key)
{
if (HttpContext.Current.Request.Cookies != null
&& HttpContext.Current.Request.Cookies[strName] != null)
{
return HttpContext.Current.Request.Cookies[strName][key];
}
else
{
return string.Empty;
}
}
#endregion
#region Cookie 删除
///
/// 删除
///
/// 名称
public static void Remove(string name)
{
if (HttpContext.Current.Request.Cookies != null
&& HttpContext.Current.Request.Cookies[name] != null)
{
HttpCookie myCookie = new HttpCookie(name);
myCookie.Expires = DateTime.Now.AddMinutes(-1);
HttpContext.Current.Response.Cookies.Add(myCookie);
}
}
///
/// 删除
///
/// 名称
/// 二级建名称
public static void Remove(string name, string key)
{
if (HttpContext.Current.Request.Cookies != null
&& HttpContext.Current.Request.Cookies[name] != null
&& !string.IsNullOrEmpty(HttpContext.Current.Request.Cookies[name][key]))
{
string[] temp = HttpContext.Current.Request.Cookies[name].Value
.Split(new char[] { '&' }, StringSplitOptions.RemoveEmptyEntries);
List<string> list = new List<string>();
foreach (string item in temp)
{
if (item.StartsWith(key))
{
continue;
}
else
{
list.Add(item);
}
}
Write(name, string.Join("&", list.ToArray()));
}
}
#endregion
}
而我们通过这个公用类来对cookies操作就显得容易了许多
public void Write()
{
//不用域名,通用性
VCommons.Http.CookieHelper.Write("test", "name", "bobo123");
//加域名,IP地址形式
VCommons.Http.CookieHelper.WriteWithDomain("test2", "nameByDomain"
, "bobo>Domain>IP", "127.0.0.1");
//加域名,可以用localhost进行本地调试
VCommons.Http.CookieHelper.WriteWithDomain("test3", "nameByDomain"
, "bobo>localhost", "localhost");
}
public void Clear()
{
//清除cookies名称为test的所有cookies元素
VCommons.Http.CookieHelper.Remove("test");
//将指定名称下的指定键值设置成空
VCommons.Http.CookieHelper.Write("test", "name", string.Empty);
VCommons.Http.CookieHelper.Write("test2", "nameByDomain", string.Empty);
VCommons.Http.CookieHelper.Write("test3", "nameByDomain", string.Empty);
}