Search

ASP.NET ile Cookies



4 yorum

ASP.NET ile Cookies

kidicookie
Cookies, hepimizin web sitelerinde karşılaştığı bir yapıdır. Basit bir örnek verecek olursak kullanıcı giriş sayfalarındaki beni hatırla seçeneğidir. Beni hatırla diyerek kullanıcı adı ve şifremiz otomatik olarak hafızada tutulur. Böylece tekrar tekrar aynı değerleri girmekten kurtulmuş oluruz.
Cookies içeriği Client(kullanıcının bilgisayarı)'da saklananan küçük dosyalardır(max 4kb).
Cookie tanımlaması yaşam sürelerine göre ikiye ayrılır.

1- Kalıcı Olmayan Cookie: Cookie'nin oturum süresince yani tarayıcının kapanmasına kadar geçen zaman boyunca yaşamasını sağlayabiliriz.
2- Kalıcı Cookie: Cookie'nin oturum sonlansa bile yaşamasını sağlayabiliriz. Böylece girilen değerler günlerce Cookie olarak saklanabilir.
Şimdi bu iki Cookie nasıl oluşturulur, nasıl kullanılır görelim. Kodları açıklamalarıyla beraber aşağıda görebilirsiniz.

Kalıcı Olmayan Cookie(oturum süresi)

Kalıcı Olmayan Cookie

CookieOlustur.aspx:
 
<%--Girilen değerler ile Cookie oluşturacağız.--%>
<%--Cookie değerlerimizi burada görüntüleyeceğiz.--%>
CookieOlustur.aspx.cs:
 
 protected void CookieOlusturbtn_Click(object sender, EventArgs e)
    {
     Response.Cookies["Cookiekullaniciadi"].Value = kullaniciaditxt.Text; //kullaniciaditxt üzerine girilen değeri Cookie içine atıyoruz.
     Response.Cookies["Cookiesifre"].Value = sifretxt.Text; //sifretxt üzerine girilen değeri Cookie içine atıyoruz.
     }

 protected void CookieGosterbtn_Click(object sender, EventArgs e)
    {
     //Öncelikle hata almamak için Cookie değerlerimizin olup olmadığını kontrol ediyoruz.
     if (Request.Cookies["Cookiekullaniciadi"] != null && Request.Cookies["Cookiesifre"] != null)
     {
         kullaniciadilbl.Text = Request.Cookies["Cookiekullaniciadi"].Value.ToString(); //Cookiekullaniciadi değerini kullaniciadilbl içine atıyoruz.
         sifrelbl.Text = Request.Cookies["Cookiesifre"].Value.ToString(); //Cookiesifre değerini sifrelbl içine atıyoruz. Böylece Cookie değerlerimizi almış oluyoruz.
         CookieSonuc.Text = "Cookie değerlerini başarıyla görüntülediniz.";
      }
     else
      {
         CookieSonuc.Text = "Cookie bulunmuyor";
        }    
        }

Kalıcı Cookie(süresini biz belirleriz)

Burada yukarıda paylaştığım örnek üzerinden devam edeceğiz. Aspx tarafında bir değişiklik yapmıyoruz. Sadece aspx.cs tarafında değişiklik yaparak Kalıcı Cookie oluşturacağız.
Kalıcı Cookie oluştururken yaşam süresini Expires özelliği ile biz belirleriz. Kodlarımız aşağıdaki gibi.
  protected void CookieOlusturbtn_Click(object sender, EventArgs e)
   {
     HttpCookie cookienesne= new HttpCookie("Login"); //Cookiekullaniciadi isminde bir Cookie oluşturduk.
     cookienesne["kullaniciadi"] = kullaniciaditxt.Text;  //cookienesne'sinin kullaniciadi değerine kullaniciaditxt bilgisini atıyoruz.
     cookienesne["sifre"] = sifretxt.Text;   //cookienesne'sinin sifre değerine sifretxt bilgisini atıyoruz.   
     cookienesne.Expires = Datetime.Now.AddSeconds(30);  //Cookie'mizin ömrü 30 saniye olacak.
     Response.Cookies.Add(cookienesne);
   }

 protected void CookieGosterbtn_Click(object sender, EventArgs e)
    {
     //Öncelikle hata almamak için Cookie değerlerimizin olup olmadığını kontrol ediyoruz.
     if (Request.Cookies["Cookiekullaniciadi"] != null && Request.Cookies["Cookiesifre"] != null)
     {
         kullaniciadilbl.Text = Request.Cookies["Login"]["kullaniciadi"].ToString(); //Login Cookie içerisindeki kullanici adi değerini kullaniciadilbl içine atıyoruz.
         sifrelbl.Text = Request.Cookies["Login"]["sifre"].ToString(); //Login Cookie içerisindeki değeri sifrelbl içine atıyoruz. Böylece Cookie değerlerimizi almış oluyoruz.
         CookieSonuc.Text = "Cookie değerlerini başarıyla görüntülediniz.";
      }
     else
      {
         CookieSonuc.Text = "Cookie bulunmuyor";
        }    
      }
Örneğimizdeki Cookie 30 saniye boyunca yaşayacaktır. 30 saniye sonra Cookie görüntülemek isterseniz, cookie olmadığını göreceksiniz.

Cookie Silme (Cookie Remove)

Oluşturmuş olduğunuz cookie nesnesini silmeniz gerekebilir. Örneğin kullanıcı, login girişinde beni unut seçeneğini işaretleyebilir.
Bunun için aşağıdaki kodu kullanabiliriz:

 //Kullanıcı Adını Unut
 HttpCookie CookieKA = new HttpCookie("CookieKullaniciAdi");
 CookieKA.Expires = DateTime.Now.AddDays(-1d);
 Response.Cookies.Add(CookieKA);
 //Şifreyi Unut
 HttpCookie CookieS = new HttpCookie("CookieSifre");
 CookieS.Expires = DateTime.Now.AddDays(-1d);
 Response.Cookies.Add(CookieS);

4 yorum:

Ali Carikcioglu at: 21 Eylül 2013 20:31 dedi ki...

çok çok sağol abi ellerinden öperim bu arada skype ID'im ali.carikcioglu3 her zaman beklerim

egvrcn at: 21 Eylül 2013 23:25 dedi ki...

Teşekkürler Ali, işine yaramasına sevindim

Kenan at: 12 Eylül 2014 03:44 dedi ki...

Peki kullanıcı adı ve şifreyi cookie içerisine girdik ama güvenliğini nasıl sağlayacağız. cookielerin içeriği okunabilir sonuçta.

egvrcn at: 12 Eylül 2014 12:54 dedi ki...

Merhaba Kenan, kullanıcı adı ve şifre gibi gizliliğin önemli olduğu durumlarda cookie kullanmanı tavsiye etmem. Cookie kullanımını güvenliğin ön planda olmadığı durumlarda kullanmalısın.

Yorum Gönder

Check Page Rank
DMCA.com