简单的Cookie子键获取

来源:互联网 发布:pscc2017语言包mac 编辑:程序博客网 时间:2024/05/02 02:32

//单个Cookie子键获取  

             if (Request.Cookies["userInfo"] != null)
            {
                System.Collections.Specialized.NameValueCollection UserInfoCookieCollection = Request.Cookies["userInfo"].Values;
                Label1.Text=UserInfoCookieCollection["userName"];
                Label2.Text=UserInfoCookieCollection["lastVisit"];
            }

//读取Cookie集合

        HttpCookie cCookie;
        for (int i = 0; i < Request.Cookies.Count; i++)
        {
            cCookie = Request.Cookies[i];
            if (cCookie.HasKeys)
            {
                for (int j = 0; j < cCookie.Values.Count; j++)
                {
                    string subkeyName =cCookie.Values.AllKeys[j];
                    string subkeyValue = cCookie.Values[j];
                    Label3.Text += String.Format("子键名称={0}", subkeyName);
                    Label4.Text += String.Format("子键值={0}", subkeyValue);
                }
            }
        }

 //删除Cookie

tempCookie.Expires = Datetime.Now.AddDays(-1); 

 

//删除单个子键,不能只是简单地重新设置COOKIE的过期日期来删除这个子键,因为那样只能删除整个COOKIE而不是删除单个子键。解决方法只能是对包含子键的COOKIE的Values集合操作来重新创建这个COOKIE,然后,就可以调用Values集合的Remove方法来删除子键,之后再覆盖客户瑞的COOKIE,具体如下代码:

 

string subkeyName ="userName";

HttpCookie aCookie = Request.Cookies["userInfo"];

aCookie.Values.Remove(subkeyName);

aCookie.Expires = DateTime.Now.AddDays(1);

Response.Coookies.Add(aCookie);