HttpCookieCollection类

一、最近在研究HttpRequest类的时候,发现返回的cookie集合是存在放这个类的对象的。而实际上这个类只是一个HttpCookie对象的集合,关于HttpCookie类可以查看http://www.cnblogs.com/kissdodog/archive/2013/01/08/2851937.html

一、公共属性

  AllKeys   获取一个字符串数组,该数组包含此 Cookie 集合中的所有键(Cookie 名称)。说白了就是所有的key组成的字符串。 
  Count    获取包含在 NameObjectCollectionBase 实例中的键/值对的数目。说白了就是cookie的总数量。
  Item      说白了就是这个类的对象可以直接通过key或数字索引号获得HttpCookie对象。 
  Keys      获取 NameObjectCollectionBase.KeysCollection 实例,该实例包含 NameObjectCollectionBase 实例中的所有键。

二、公共方法

  Add          将指定的 Cookie 添加到此 Cookie 集合中。
  Clear          清除 Cookie 集合中的所有 Cookie。
  CopyTo        从指定的数组索引处开始,将 Cookie 集合的成员复制到 Array 中。
  Get          已重载。 从 Cookie 集合中返回单个 HttpCookie 对象。仅仅可以通过数字索引访问不能通过字符串key访问。
  GetEnumerator    返回循环访问 NameObjectCollectionBase 的枚举数。 (从 NameObjectCollectionBase 继承。)
  GetKey        返回指定数字索引处的 Cookie 键(名称)。
  GetObjectData   实现 ISerializable 接口,并返回序列化 NameObjectCollectionBase 实例所需的数据。 (从 NameObjectCollectionBase 继承。)
  OnDeserialization 实现 ISerializable 接口,并在完成反序列化之后引发反序列化事件。 (从 NameObjectCollectionBase 继承。)
  Remove       从集合中移除具有指定名称的 Cookie。
  Set          更新 Cookie 集合中现有 Cookie 的值。

        public ActionResult TestCookie()
        {
            //事先已经设置了3个cookie
            HttpCookieCollection cookieCollect = System.Web.HttpContext.Current.Request.Cookies;
            Response.Write(cookieCollect.Count);    //输出Cookie总数量
            foreach (string key in cookieCollect.AllKeys)    //遍历cookie集合,获取所有的keys
            {
                Response.Write(key + ":" + cookieCollect[key].Value); //奇怪了,Get方法居然是不支持key索引访问的,而自身却可以
            }                              //cookieCollect[key]这个是HttpCookie对象,在通过HttpCookie对象的Value属性获取具体值。
                    
            return View();
        }    
原文地址:https://www.cnblogs.com/kissdodog/p/2858005.html