Asp.Net Cookie Kullanımı


Twitter'da Paylaş Favorilerime Ekle

Cookie Kullanımı - Çerezler

Sayfalar arasında bilgi taşımanın bir yolu da Cookie nesnesi kullanmaktır. İstemci bilgisayarda Cookie adı verilen (Çerez dosyası) bir dosya oluşturup, içerisine istediğimiz bilgileri yazmamızı sağlayan yöntemdir. Bu sayede ziyaretçinin sayfamızı her ziyaretinde bu dosyadaki bilgileri okuyup kullanabilir veya değiştirebiliriz.

Oluşturulacak olan dosyaya bir dosya adı verilir. Aynı zamanda o dosyanın ne zamana kadar geçerli olacağını belirtmek için Expires özelliği kullanılır. Belirtilen tarihten sonra dosya silinecektir.

Cookie dosyası içinde bilgiler parametre ve değer şeklinde saklanırlar.

Cookie Nesnesinin Avantajları:

  • Kullanıcının bilgisayarında kullanıcıya özgü bilgileri saklayabiiriz.
  • Günler sonra bile bu bilgilere ulaşabiliriz.
  • Örnek olarak anket vb uygulamalarda aynı kullanıcının birden fazla oy kullanmasını engelleyebiliriz.
  • Cookie dosyasında kullanıcıya özgü istatistikler tutarak bunlardan faydalanabiliriz.
  • Başka site ve uygulamalar ile bu bilgileri paylaşabiliriz. Örneğin alışveriş sitelerinde baktığımız ürünleri, başka sitelerde gezerken google reklamı olarak görmemiz bu sayededir.

Cookie Kullanmanın Dezavantajları:

  • Güvenlik yönünden zayıftır. Başkaları da bu dosyaları okuyabilir.
  • Ziyaretçinin kullandığı tarayıcı çerezlere izin vermiyor olabilir.
  • Ziyaretçi çerezleri kendisi silebilir.

Cookie Yazma İşlemi

Cookie dosyası oluşturma ve içerisine veri yazmak için iki yöntem mevcuttur. Ancak burada HttpCookie sınıfı kullanılarak işlem yapılacaktır.

HttpCookie cerezim = new HttpCookie("cerezdosyam");
cerezim["kullaniciAdi"] = TextBox1.Text;
cerezim["parola"] = TextBox2.Text;
cerezim.Expires = DateTime.Now.AddDays(10);
Response.Cookies.Add(cerezim);

Yukarıda; 

  • HttpCookie sınıfından cerezim isminde bir nesne oluşturulmuştur.
  • İstemci bilgisayarın diskinde oluşturulacak dosyanın isminin ise cerezdosyam olacağı belirtilmiştir.
  • Bu dosya içerisine kullaniciAdi ve parola isimlerinde iki parametre oluşturulmuş ve değerleri atanmıştır.
  • Dosyanın geçerlilik tarihi, şu anki tarihten 10 gün sonra olarak belirlenmiştir.
  • Son olarak Add metodu ile dosyanın oluşturulması sağlanmıştır.

Cookie Okuma İşlemi

Cookie dosyasındaki verileri okuma işini de benzer şekilde yapabiliriz:

HttpCookie cerezOku = Request.Cookies["cerezdosyam"];
TextBox1.Text = cerezOku["kullaniciAdi"];
TextBox2.Text = cerezOku["parola"];

Okuma işlemi sırasında cookie dosyası bulunamazsa hata oluşacaktır. Bunun önüne geçmek için şu yöntem kullanılabilir:

if (Request.Cookies["cerezDosyam"] != null)
{
HttpCookie cerezOku = Request.Cookies["cerezdosyam"];
TextBox1.Text = cerezOku["kullaniciAdi"];
TextBox2.Text = cerezOku["parola"];
}
 

Response ve Request Metotları ile Cookie İşlemleri

HttpCookie sınıfı kullanmadan, Response metodu ile cookie yazılıp, Request metodu ile de okunabilir.

Response kullanarak Cookie yazma:

Response.Cookies["cerezDosyam"]["kullaniciAdi"] = TextBox1.Text;
Response.Cookies["cerezDosyam"]["parola"] = "TextBox2.Text";
Response.Cookies["cerezDosyam"].Expires = DateTime.Now.AddDays(10); 

Cookie içerine sadece bir tek bilgi eklenecekse, parametre kullanılmadan şu şekilde de yapılabilir:

Response.Cookies["cerezDosyam"].Value = TextBox1.Text;

Request metodu ile Cookie okuma:

TextBox1.Text = Request.Cookies["cerezDosyam"]["kullaniciAdi"];
TextBox2.Text = Request.Cookies["cerezDosyam"]["parola"];

Cookie içinde sadece tek bir bilgi varsa şu şekilde okunabilir:

Label1.Text = Request.Cookies["cerezDosyam"].Value;

Cookie Silme İşlemi

if (Request.Cookies["cerezDosyam"] != null)
{
HttpCookie cerezim = new HttpCookie("cerezDosyam");
cerezim.Expires = DateTime.Now.AddDays(-1d);
Response.Cookies.Add(cerezim);
}

asp.net cookie oluşturma, c# cookie yazma, c# cookie okuma yazma işlemleri, cookie silme devre dışı bırakma, çerez cookie kullanmanın avantaj ve dezavantajları

KONU İLE İLGİLİ ÖRNEKLER