在cookie中存储多个值

Jal*_*ama 30 asp.net cookies

我有一个非常大的网站,它使用了很多cookie.有约.有14种不同的饼干.我对每个项目都有不同的cookie.当用户浏览网站时,他们的浏览器中将有14个cookie.我不想要这个.

我想为我的网站提供一个包含14个项目的cookie,我可以添加,编辑和删除它们.我尝试了很多方法,但我无法做到这一点.

我需要放一些运行时cookie以及将用户名保存在cookie中.用户登录后,我想在其中保存自己的个人网站地址.最终,我同时想要用户名和个人网站地址.我想先保存用户名,然后当用户访问他的个人网站时,我将存储个人网站名称运行时间.

有没有人知道我该怎么做?

Kur*_*ler 49

Matthew打败了我,但是,请参阅ASP.NET Cookies概述 ......

要编写和读取具有多个键/值的单个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"];
Run Code Online (Sandbox Code Playgroud)

  • 等效的Javascript:document.cookie ="mybigcookie = name = John&address = John's Address" (2认同)

Mat*_*nes 15

ASP.NET Cookie概述中有一节讨论如何在单个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);
Run Code Online (Sandbox Code Playgroud)

编辑:从Cookies概述(重点添加):

修改和删除Cookie: 您无法直接修改Cookie.相反,更改cookie包括使用新值创建新cookie,然后将cookie发送到浏览器以覆盖客户端上的旧版本.