提供一个Cookies操作类(支持带域名与不带域名)IP和localhost域名调试
来看一下COOKIES公用操作类
/// <summary>
/// Cookie 操作帮助类
/// </summary>
public class CookieHelper
{
#region 写cookie值
/// <summary>
/// 写cookie值
/// </summary>
/// <param name="strName">名称</param>
/// <param name="strValue">值</param>
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);
}
/// <summary>
/// 写cookie值
/// </summary>
/// <param name="strName">名称</param>
/// <param name="strValue">值</param>
/// <param name="doMain">域 例如:contoso.com</param>
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);
}
/// <summary>
/// 写cookie值
/// </summary>
/// <param name="strName">名称</param>
/// <param name="key">键名</param>
/// <param name="strValue">值</param>
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);
}
/// <summary>
/// 写cookie值
/// </summary>
/// <param name="strName">名称</param>
/// <param name="key">键名</param>
/// <param name="strValue">值</param>
/// <param name="doMain">域 例如:contoso.com</param>
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);
}
/// <summary>
/// 写cookie值
/// </summary>
/// <param name="strName">名称</param>
/// <param name="strValue">值</param>
/// <param name="strValue">过期时间(分钟)</param>
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);
}
/// <summary>
/// 写cookie值
/// </summary>
/// <param name="strName">名称</param>
/// <param name="strValue">值</param>
/// <param name="strValue">过期时间(分钟)</param>
/// <param name="doMain">域 例如:contoso.com</param>
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);
}
/// <summary>
/// 写cookie值
/// </summary>
/// <param name="strName">名称</param>
/// <param name="key">键名</param>
/// <param name="strValue">值</param>
/// <param name="expires">过期时间(分钟)</param>
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);
}
/// <summary>
/// 写cookie值
/// </summary>
/// <param name="strName">名称</param>
/// <param name="key">键名</param>
/// <param name="strValue">值</param>
/// <param name="expires">过期时间(分钟)</param>
/// <param name="doMain">域 例如:contoso.com</param>
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值
/// <summary>
/// 读cookie值
/// </summary>
/// <param name="strName">名称</param>
/// <returns>cookie值</returns>
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;
}
}
/// <summary>
/// 读cookie值
/// </summary>
/// <param name="strName">名称</param>
/// <param name="key">键名</param>
/// <returns>cookie值</returns>
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 删除
/// <summary>
/// 删除
/// </summary>
/// <param name="name">名称</param>
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);
}
}
/// <summary>
/// 删除
/// </summary>
/// <param name="name">名称</param>
/// <param name="key">二级建名称</param>
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);
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 记一次.NET内存居高不下排查解决与启示