以前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集合的更多相关文章

  1. 好好了解一下Cookie

    Cookie的诞生 由于HTTP协议是无状态的,而服务器端的业务必须是要有状态的.Cookie诞生的最初目的是为了存储web中的状态信息,以方便服务器端使用.比如判断用户是否是第一次访问网站.目前最新 ...

  2. ASP.NET Cookie(一)--基本应用

    Cookie提供了一种在Web应用程序中存储用户特定信息的方法.例如,当用户访问您的站点时,您可以使用Cookie存储用户首选项或其他信息.当该用户再次访问您的网站时,应用程序便可以检索以前存储的信息 ...

  3. asp.net,cookie,写cookie,取cookie

    Cookie是一段文本信息,在客户端存储 Cookie 是 ASP.NET 的会话状态将请求与会话关联的方法之一.Cookie 也可以直接用于在请求之间保持数据,但数据随后将存储在客户端并随每个请求一 ...

  4. C#中Cookie的概述及应用

    1.Cookie简介 Cookie 提供了一种在 Web 应用程序中存储用户特定信息的方法.例如,当用户访问您的站点时,您可以使用 Cookie 存储用户首选项或其他信息.当该用户再次访问您的网站时, ...

  5. .NET的Cookie相关操作

    using System; using System.Collections.Generic; using System.Text; using System.Web; namespace Comm ...

  6. 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 ...

  7. 创建Cookie,简单模拟登录,记录登录名,购物车记录先前添加内容,session控制登录

     工作任务:模拟淘宝登录和购物车功能:使用cookie记录登录名,下次登录时能够记得上次的登录名,使用cookie模拟购物车功能,使用session记住登录信息并验证是否登录,防止利用url打开网站, ...

  8. asp.net各种cookie代码和解析

    Cookie是一段文本信息,在客户端存储 Cookie 是 ASP.NET 的会话状态将请求与会话关联的方法之一.Cookie 也可以直接用于在请求之间保持数据,但数据随后将存储在客户端并随每个请求一 ...

  9. Cookie对象

    Cookie对象用于保存客户端浏览器请求的服务器页面,也可用于存放非敏感性的用户信息,信息保存的时间可以根据用户的需要进行设置.并非所有的浏览器都支持Cookie,并且数据信息是以文本的形式保存在客户 ...

随机推荐

  1. Apex 的异常处理

    Apex 中的异常处理 在 Apex 中,和其他语言类似,对于异常处理通常使用 try.catch.finally.throw 等关键字. 对于每一个 try 代码段,必须要有至少一个 catch 或 ...

  2. Nginx 反向代理工作原理简介与配置详解

    Nginx反向代理工作原理简介与配置详解   by:授客  QQ:1033553122   测试环境 CentOS 6.5-x86_64 nginx-1.10.0 下载地址:http://nginx. ...

  3. Java强引用、软引用、弱引用及虚引用深入探讨

    强引用.软引用.弱引用和虚引用深入探讨 为了更灵活的控制对象的生命周期,在JDK1.2之后,引用被划分为强引用.软引用.弱引用.虚引用四种类型,每种类型有不同的生命周期,它们不同的地方就在于垃圾回收器 ...

  4. Yarn 安装 on centos7

    本文演示如何在CentOS7上安装Yarn.注意这个Yarn是Js包管理器,不是Hadoop的资源调度器. 1 准备工作 1.1 浏览器访问安装包下载地址: https://github.com/ya ...

  5. 洗礼灵魂,修炼python(33)--面向对象编程(3)—特殊类方法__init__,公有属性,私有属性

    在上一篇博文里,传入参数时,是在实例化对象后且在调用方法时才传入参数,感觉是不是有点繁琐对吧?可以在实例化的时候就传入参数吗?可以的,这就是本篇博文的要讲到的构造器——__init__(两边双下划线) ...

  6. 洗礼灵魂,修炼python(21)--自定义函数(2)—函数文档,doctest模块,形参,实参,默认参数,关键字参数,收集参数,位置参数

    函数文档 1.什么是函数文档: 就是放在函数体之前的一段说明,其本身是一段字符串,一个完整的函数需要带有函数文档,这样利于他人阅读,方便理解此函数的作用,能做什么运算 2.怎么查看函数文档: func ...

  7. python第十五天-原来还差一份作业

    作业 1: 员工信息表程序,实现增删改查操作 可进行模糊查询,语法至少支持下面3种: select name,age from staff_table where age > 22 select ...

  8. Windows:Oracle 11g 备份脚本

    @echo off echo ================================================ echo Windows环境下Oracle数据库的自动备份脚本 echo ...

  9. VRS——备忘

    1.所有版本VRS,注释掉m_ChisauarePRN参数 2.注释掉所有的MODULE_GNSSMonitor_ID,暂时用不到.但是会造成basestation崩掉. n.RegisterStat ...

  10. JS获取本周、本季度、本月、上月的开始日期、结束日期

    /** * 获取本周.本季度.本月.上月的开始日期.结束日期 */ var now = new Date();                    //当前日期 var nowDayOfWeek = ...