2009-07-23 17 views
26

Çok fazla çerez kullanan çok büyük bir web sitem var. Yaklaşık vardır. 14 farklı çerez var. Her öğe için farklı çerezlerim var. Bir kullanıcı siteyi ziyaret ettiğinde, tarayıcılarında 14 çerez bulunur. Bunu istemiyorum.Çerezlerde çoklu değerlerin saklanması

Sitem için 14 öğeye sahip tek bir çerez istiyorum ve bunları ekleyebilir, düzenleyebilir ve silebilirim. Birçok yol denedim ama bunu yapamam.

Bazı çalışma zamanı çerezleri koymalıyım, ayrıca kullanıcı adını çerezde kaydetmeliyim. Kullanıcı oturum açtıktan sonra kişisel site adresini kaydetmek istiyorum. Sonunda hem kullanıcı adını hem de kişisel site adresini istiyorum. Önce kullanıcı adını kaydetmek istiyorum ve kullanıcı kendi kişisel sitesine gittiğinde kişisel site adı çalışma süresini kaydedeceğim.

Bunu nasıl yapabileceğimize dair bir fikrim var mı?

cevap

43

Matthew beni alt ama evet, böyle bir şey olmazdı

yazmak için ... ASP.NET Cookies Overview görmek ve birden fazla tuşa/değerle tek çerez okuyun:

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

hala aynı zamanda saklanıyorsun. İsim ve ben HttpCookie cookie = new HttpCookie ("mybigcookie") takip ettiğim gibi adresi; cookie.Values.Add ("name", name); ve sonra kullanıcı kendi kişisel sitesini kullandığında o zaman cookie.Values.Add ("adres", adres) yapmak istiyorum; Mümkün mü? –

+1

@Jalpesh: kısa cevap hayır, düzenlememi kontrol et. –

+0

Javascript eşdeğer sözdizimi nedir? – JNappi

15

ASP.NET Cookies Overview10'da, tek bir çerezde birden çok ad-değer çiftinin (alt anahtar olarak adlandırılır) nasıl uygulanacağını ele alan bir bölüm vardır. Bence bu demek istediğin şey.

C# o sayfadan örnek:

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

DÜZENLEME: Çerezler Bakış (vurgu eklenmiştir) Gönderen:

değiştirme ve silme Çerezler: Sen doğrudan değiştiremezsiniz çerez. Bunun yerine, bir çerezi değiştirmek, yeni değerleri içeren yeni bir tanımlama bilgisi oluşturup tarayıcısını ve tarayıcısını istemciye eski sürüm üzerine yazmak için tarayıcıdan oluşur.

+0

Aynı zamanda çerezleri kullanıcı adı ve kişisel site gibi aynı anda saklıyorlar ve daha sonra çerez içerisine ekliyorlar. Benim durumumda ise zaten çerezde kullanıcı adını saklıyorum gibi bir şey var ve daha sonra kişisel bir site gibi çerezde başka bir değer ekliyorum . Bunu yapmanın herhangi bir yolu var mı? –

2

Çerezleri Değiştirme ve Silme: Bir çerezi doğrudan değiştiremezsiniz. Bunun yerine, bir çerezi değiştirmek yeni değerlerle yeni bir çerez oluşturmayı ve daha sonra müşteriyi eski sürümün üzerine yazmak için çerezi tarayıcıya göndermekten oluşur.

İlgili konular