我有一个非常大的网站,它使用了很多cookie。有约。有14种不同的饼干。我对每个项目都有不同的cookie。当用户浏览网站时,他们的浏览器中将有14个cookie。我不想要这个。
我想为我的网站添加一个包含14个项目的cookie,我可以添加,编辑和删除它们。我尝试了很多方法,但我无法做到这一点。
我需要输入一些运行时cookie以及将用户名保存在cookie中。用户登录后,我想在其中保存自己的个人网站地址。最终,我同时想要用户名和个人网站地址。我想先保存用户名,然后当用户访问他的个人网站时,我会存储个人网站名称运行时间。
有人知道我该怎么做吗?
答案 0 :(得分:49)
马修打败了我,但是,请看ASP.NET Cookies Overview ......
要编写和读取具有多个键/值的单个cookie,它看起来像这样:
HttpCookie cookie = new HttpCookie("mybigcookie");
cookie.Values.Add("name", name);
cookie.Values.Add("address", address);
//get the values out
string name = Request.Cookies["mybigcookie"]["name"];
string address = Request.Cookies["mybigcookie"]["address"];
答案 1 :(得分:15)
ASP.NET Cookies Overview中有一节讨论如何在一个cookie中实现多个名称 - 值对(称为子键)。我想这就是你的意思。
该页面的示例,在C#中:
Response.Cookies["userInfo"]["userName"] = "patrick"; //userInfo is the cookie, userName is the subkey
Response.Cookies["userInfo"]["lastVisit"] = DateTime.Now.ToString(); //now lastVisit is the subkey
Response.Cookies["userInfo"].Expires = DateTime.Now.AddDays(1);
HttpCookie aCookie = new HttpCookie("userInfo");
aCookie.Values["userName"] = "patrick";
aCookie.Values["lastVisit"] = DateTime.Now.ToString();
aCookie.Expires = DateTime.Now.AddDays(1);
Response.Cookies.Add(aCookie);
编辑:从Cookies概述(重点添加):
修改和删除Cookie: 您 不能直接修改cookie 。 相反,更改cookie包含 使用新值创建新cookie 然后将cookie发送给 浏览器覆盖旧版本 在客户端上。
答案 2 :(得分:2)
修改和删除Cookie:您无法直接修改Cookie。相反,更改cookie包括使用新值创建新cookie,然后将cookie发送到浏览器以覆盖客户端上的旧版本。