Подтвердить что ты не робот

Сохранение нескольких значений в файлах cookie

У меня очень большой сайт, на котором много куков. Есть ок. 14 разных файлов cookie. У меня есть разные файлы cookie для каждого элемента. Когда пользователь просматривает сайт, у них будет 14 файлов cookie в своем браузере. Я не хочу этого.

Я хочу, чтобы один файл cookie для моего сайта содержал 14 элементов, и я могу добавлять, редактировать и удалять их. Я пробовал много способов, но я не в состоянии это сделать.

Мне нужно поместить некоторые куки времени выполнения, а также сохранить имя пользователя в cookie. После входа пользователя в систему я хочу сохранить в нем свой персональный адрес. В конце концов, я хочу, чтобы и имя пользователя, и персональный адрес сайта были оба. Я хочу сохранить имя пользователя до и после этого, когда пользователь перейдет на свой персональный сайт, тогда я сохраню время для запуска имени личного сайта.

Есть ли у кого-нибудь идеи, как я могу это сделать?

4b9b3361

Ответ 1

Мэтью избил меня, но да, см. Обзор файлов cookie ASP.NET...

Чтобы написать и прочитать один файл 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"];

Ответ 2

Существует раздел в Обзор куки файлов ASP.NET, в котором обсуждается, как реализовать несколько пар имя-значение (называемых подразделами) в одном печенье. Я думаю, это то, что вы имеете в виду.

Пример из этой страницы в С#:

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);

ИЗМЕНИТЬ: Из обзора файлов cookie (выделено мной):

Изменение и удаление файлов cookie: Вы не может напрямую изменить файл cookie. Вместо этого, изменение cookie состоит из создание нового файла cookie с новыми значениями а затем отправку файла cookie в браузер для перезаписывания старой версии на клиента.

Ответ 3

Изменение и удаление файлов cookie: вы не можете напрямую модифицировать файл cookie. Вместо этого, изменение cookie состоит в создании нового файла cookie с новыми значениями и последующей отправке файла cookie в браузер для перезаписывания старой версии на клиенте.