实现Cookie集合
以前Insus.NET有在博客上有写过一篇《在程序中使用Cookie集合》http://www.cnblogs.com/insus/archive/2011/05/25/2055531.html
昨天Insus.NET有在命名用这方法的专项中,进行改写与优化。
把Cookie类抽出并独立起来。

private static HttpResponse Response
{
get
{
return HttpContext.Current.Response;
}
} private static HttpRequest Request
{
get
{
return HttpContext.Current.Request;
}
}
Source Code
这个cookie集合,当然存取单独cookie也行才对:

public static string GetCookie(string cookieName)
{
return Request.Cookies[cookieName] == null ? "" : Request.Cookies[cookieName].Value;
} public static void SetCookie(string cookieName, string value)
{
Response.Cookies[cookieName].Value = value;
} public static void RemoveCookie(string cookieName)
{
HttpCookie cookie = Request.Cookies[cookieName];
cookie.Expires = DateTime.Now.AddTicks(-);
Response.Cookies.Add(cookie);
}
Source Code
下面是存储cookie集合,即是说单个cookie中,能够存储多个键值:
private static Dictionary<string, object> GetCookies(string cookieName)
{
Dictionary<string, object> dic = new Dictionary<string, object>(); if (Request.Cookies[cookieName] != null)
{
HttpCookie cookie = Request.Cookies[cookieName];
if (cookie != null)
{
NameValueCollection nvc = cookie.Values;
foreach (string key in nvc.AllKeys)
{
dic.Add(key, cookie[key]);
}
}
}
return dic;
} public static object GetCookies(string cookieName, string keyName)
{
Dictionary<string, object> dic = GetCookies(cookieName);
if (dic.Count > && dic.ContainsKey(keyName))
{
return dic[keyName];
} return null;
} public static void SetCookies(string cookieName, Dictionary<string, object> dic)
{
HttpCookie cookie = Request.Cookies[cookieName] == null ? new HttpCookie(cookieName) : Request.Cookies[cookieName];
foreach (KeyValuePair<string, object> val in dic)
{
cookie[val.Key] = val.Value.ToString();
}
Response.Cookies.Add(cookie);
} public static void RemoveCookies(string cookieName)
{
HttpCookie cookie = Request.Cookies[cookieName];
cookie.Expires = DateTime.Now.AddTicks(-);
Response.AppendCookie(cookie);
} public static void RemoveCookies(string cookieName, string keyName)
{
HttpCookie cookie = Request.Cookies[cookieName];
if (cookie != null)
cookie.Values.Remove(keyName);
Response.AppendCookie(cookie);
}
Source Code
以上只是实现一个cookie类。真正在程序中,我们怎样去写cookie呢?也就是说如何使用。你可以写每一个cookie写成一个property,如下:
你可以写成任一个想实现的cookie。以上只是简单写2个属性,一个方法。
在网页中,就可以轻松使用:
赋值:
InsusBase.SystemLoginOk = true;
InsusBase.SystemId = "Key001";
获取值:
Response.Write(InsusBase.SystemLoginOk);
Response.Write(InsusBase.SystemId);
实现Cookie集合的更多相关文章
- 好好了解一下Cookie
Cookie的诞生 由于HTTP协议是无状态的,而服务器端的业务必须是要有状态的.Cookie诞生的最初目的是为了存储web中的状态信息,以方便服务器端使用.比如判断用户是否是第一次访问网站.目前最新 ...
- ASP.NET Cookie(一)--基本应用
Cookie提供了一种在Web应用程序中存储用户特定信息的方法.例如,当用户访问您的站点时,您可以使用Cookie存储用户首选项或其他信息.当该用户再次访问您的网站时,应用程序便可以检索以前存储的信息 ...
- asp.net,cookie,写cookie,取cookie
Cookie是一段文本信息,在客户端存储 Cookie 是 ASP.NET 的会话状态将请求与会话关联的方法之一.Cookie 也可以直接用于在请求之间保持数据,但数据随后将存储在客户端并随每个请求一 ...
- C#中Cookie的概述及应用
1.Cookie简介 Cookie 提供了一种在 Web 应用程序中存储用户特定信息的方法.例如,当用户访问您的站点时,您可以使用 Cookie 存储用户首选项或其他信息.当该用户再次访问您的网站时, ...
- .NET的Cookie相关操作
using System; using System.Collections.Generic; using System.Text; using System.Web; namespace Comm ...
- Asp.net操作cookie大全
实例代码: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 3 ...
- 创建Cookie,简单模拟登录,记录登录名,购物车记录先前添加内容,session控制登录
工作任务:模拟淘宝登录和购物车功能:使用cookie记录登录名,下次登录时能够记得上次的登录名,使用cookie模拟购物车功能,使用session记住登录信息并验证是否登录,防止利用url打开网站, ...
- asp.net各种cookie代码和解析
Cookie是一段文本信息,在客户端存储 Cookie 是 ASP.NET 的会话状态将请求与会话关联的方法之一.Cookie 也可以直接用于在请求之间保持数据,但数据随后将存储在客户端并随每个请求一 ...
- Cookie对象
Cookie对象用于保存客户端浏览器请求的服务器页面,也可用于存放非敏感性的用户信息,信息保存的时间可以根据用户的需要进行设置.并非所有的浏览器都支持Cookie,并且数据信息是以文本的形式保存在客户 ...
随机推荐
- What I am concerned about
redux: https://www.cnblogs.com/XieJunBao/p/9232341.html vuex: https://juejin.im/post/5a8eb24e6fb9a06 ...
- Git应用—01初始化项目
1.环境变量GIT_HOME D:\GreenSoftware\PortableGit Path %GIT_HOME%\cmd; 2.初始化git config --global u ...
- 【Tomcat】Unrecognized Windows Sockets error: 10106: Socket creation failed
tomcat8启动过程中报如下错误 -Nov- ::]: java.net.SocketException: Unrecognized Windows Sockets error: : create ...
- Django 信息
Request information USER admin GET No GET data POST No POST data FILES No FILES data COOKIES Variabl ...
- Azure 标准与高级托管磁盘存储的相互转换
托管磁盘提供两种存储选项:高级(基于 SSD)和标准(基于 HDD). 它允许基于性能需求在这两个选项之间轻松切换,并保障最短停机时间. 非托管磁盘不具备此功能. 但可以轻松转换为托管磁盘,以便在这两 ...
- AspNetCore2身份验证
1.在Startup类的Configure方法,添加身份验证的中间件AuthenticationMiddleware app.UseAuthentication(); 2.在Startup类的Conf ...
- Linux的命名空间详解--Linux进程的管理与调度(二)【转】
Linux Namespaces机制提供一种资源隔离方案. PID,IPC,Network等系统资源不再是全局性的,而是属于特定的Namespace.每个Namespace里面的资源对其他Namesp ...
- 描述性统计的matlab实现
理论讲的再多不会做也白弄 直接上手 一.针对接近正态分布的(均值,方差,标准差,极差,变异系数,偏度,峰度) 这里我必须提前说明一点就是,你在写好函数后,函数的名是dts,你保存的文件名也必须是dts ...
- java web中java和python混合使用
利用java web技术展示python算法处理后的数据 工具/原料 myeclipse10 pycharm+Anaconda2 方法/步骤 首先安装配置好pycharm+Anaconda ...
- Eclipse配置和使用Maven
一.ecplise配置Maven 1.下载eclipse的Maven插件.(有些eclipse版本中已经集成了此Maven插件,可以不用下载). 需要下载m2eclipse插件. 2.安装m2ecli ...