2009-07-23 122 views
26

我有非常大的網站,它使用了大量的cookie。有約。那裏有14個不同的餅乾。每個項目我都有不同的餅乾。當用戶瀏覽網站時,他們在瀏覽器中會有14個Cookie。我不想要這個。在Cookie中存儲多個值

我要爲我的網站,將有14個項目,我可以添加,編輯和刪除一個Cookie。我嘗試了很多方法,但我無法做到這一點。

我需要把一些運行時間餅乾以及餅乾中保存的用戶名。用戶登錄後,我想將其個人網站地址保存在其中。最終我想都用戶名和個人網站地址。我想在保存用戶名之前,然後當用戶去他的個人網站,然後我將存儲個人網站名稱運行時間。

沒有任何一個有一個想法,我怎麼能做到這一點?

回答

43

馬修打我,但肯定的,看到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"]; 
+0

你仍然在同一時間存儲。名稱和地址就像我以下HttpCookie cookie = new HttpCookie(「mybigcookie」); cookie.Values.Add(「name」,name);然後當用戶使用其個人網站,然後我想做的cookie.Values.Add(「地址」,地址);可能嗎? – 2009-07-23 19:08:51

15

有在討論如何實現在一個cookie的多個名稱 - 值對(稱爲子項)的ASP.NET Cookies Overview的部分。我認爲這是你的意思。

從該頁面的例子,在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); 

編輯:從餅乾概述(強調):

修改和刪除餅乾: 您 不能直接修改曲奇。 取而代之,更改Cookie由 創建一個具有新值的新餅乾 ,然後將cookie發送到 瀏覽器以覆蓋客戶端上的舊版本 。

+0

在使它們在同時喜歡的用戶名和個人網站,然後存儲Cookie添加它來使用網站,而在我的情況下,它的一些東西一樣,我已經存儲的用戶名中的cookie,然後我像個人網站的cookie增加彼此價值觀。有沒有辦法做到這一點? – 2009-07-23 18:53:32

2

修改和刪除Cookie:您不能直接修改cookie。相反,更改cookie包括創建一個新值的新cookie,然後將cookie發送到瀏覽器以覆蓋客戶端上的舊版本。