2009-07-23 4 views
26

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

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

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

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

ответ

43

Мэтью бил меня к нему, но да, см ASP.NET Cookies Overview ...

Чтобы читать и писать один печенье с несколькими ключевыми/значений, это будет выглядеть примерно так:

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"]; 
+0

все еще вы сохраняете в то же время имя и адрес, как я сделал после HttpCookie cookie = new HttpCookie («mybigcookie»); cookie.Values.Add ("name", name); а затем, когда пользователь использует свой персональный сайт, я хочу сделать cookie.Values.Add («адрес», адрес); Является ли это возможным? –

+1

@Jalpesh: короткий ответ - нет, проверьте мое редактирование. –

+0

Что такое синтаксис эквивалента javascript? – JNappi

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

EDIT: Из Cookies Обзор (подчеркивание добавлено):

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

+0

В этом случае они сохраняют файлы cookie в то же время, что и имя пользователя и персональный сайт, а затем добавляют его в файл cookie, а в моем случае его некоторые вещи, как я уже сохранил имя пользователя в cookie, а затем добавляю еще одно значение в cookie, например, на личном сайте , Есть ли способы сделать это? –

2

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

Смежные вопросы