Son Haberler
Anasayfa / Yazılım / ASP.NET / Cookie Kullanımı

Cookie Kullanımı

Bir önceki makalemde Session State hakkında yazı yazmıştım, bayağı da zaman oldu 🙂 Şimdi devam edelim. Session State ile herhangi bir kullanıcıya ait bir takım bilgileri saklayabiliyorduk. Peki ne zamana kadardı? İşte Session State bu noktada bir dezavantaja sahip, ben kullanıcı bilgilerini sürekli olarak saklamak ve aynı kullanıcı tekrar benim siteme geldiğinde tespit etmek istiyorsam ne yapmalıyım? Yani kullanıcı browserı kapadığında Session State üzerindeki veriler malum kayboluyor, ben bunu önlemek için ve bu kullanıcı tekrar siteme gelmiş mi, uğramış mı bunu öğrenmek için ne yapmalıyım?

Bu noktada karşımızı cookie çıkıyor, Türkçesi çerez olarak kabul edilmiş. Kullanıcı bilgilerini uzun süre saklayabilmek için çerezlere ihtiyaç duyarız. Cookie yani çerez kullanıcı bilgilerini tutan, bizim oluşturduğumuz ASP.NET uygulamalarında kullanılan bir veri parçasıdır. Çerezler kullanıcı tarayıcısını kapattığında asla kaybolmazlar, ta ki kullanıcı bunları silene dek. Böylelikle biz cookie ile kullanıcımızı tanımlama hakkına sahip olabiliriz.

ASP.NET ortamında Cookie, HttpCookie sınıfı tarafından temsil edilir. Cookie okumak için Cookie sınıfının Request özelliği kullanılır. Cookie ayarlama için ise Cookie sınıfının Response özelliğini kullanılır. Cookie varsayılan olarak tıpkı Session State gibi tarayıcı kapatıldığında sonlanır fakat bilgiler silinmez. Cookie geçerlilik süresi istenildiği şekilde gelecekteki bir zamana ayarlanabilir. Böylelikle Cookie belli bir süre için kalıcı olarak tanımlama bilgisine sahip data parçacıkları olarak bilinir.

Örnek üzerinden açıklama yaparsak :

Default.aspx dosyam : Bir adet Label kontrolü ekledim.

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="CookieKullanimi.Default" %>





    


    

Page_Load Eventinde,

Default.aspx.cs dosyam :

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace CookieKullanimi
{
    public partial class Default : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            HttpCookie kullaniciCookie; // Bir Cookie nesnesi oluşturuyorum.
            kullaniciCookie = Request.Cookies["KullaniciID"];
            if (kullaniciCookie == null)
            {
                Label1.Text = "Cookie bulunamadı! Yeni bir Cookie oluşturuluyor"; //Eğer ilk anda yoksa, mesaj verdirdim.
                kullaniciCookie = new HttpCookie("KullaniciID", "İsmail GÜRSOY"); //nesneme değer ataması yaptım.
                kullaniciCookie.Expires = DateTime.Now.AddMonths(3); //Cookie sonlanma süresini belirttim
                Response.Cookies.Add(kullaniciCookie);
            }
            else
            {
                Label1.Text = "Sayın  " + kullaniciCookie.Value + " Hoşgeldiniz.."; //Cookie değerini okudum.
            }
        }
    }
}

Üstteki kod bloğunda kullaniciCookie nesnesi HttpCookie sınıfının bir instance alınmış halidir ve kullaniciID değerine tanımlanmıştır. C sharp ortamında cookie nesnesinin var olup olmadığı null ile test edilir. Eğer null sonuç alınıyorsa cookie yoktur ve üstteki örnekte de görüldüğü gibi null yanıtı alınırsa cookie oluşturulur. Üstteki örnekte cookie sonlanma süresi üç ay olarak tanımlanmıştır, oluşturulduğu tarihten itibaren 3 ay sonra cookie sonlanacaktır. Cookie, Response.Cookies.Add methodu kullanılarak aktarılır. Aktarma işlemi tamamlandıktan sonra kullanıcı tekrar sayfayı yenilediğinde cookie artık önceden oluşturulup, var olacağından dolayı ekranda hoşgeldiniz yazısı görülür.

Örnek ilk çalıştırıldığında cookie bulunamadı mesajı alınacak sonraki çalıştırılmasında cookie artık oluşturulduğundan dolayı hoşgeldiniz mesajı görüntülenecektir.

Artık kullanıcı browser kapasa bile, ya da bilgisayarı kapatıp açsa bile, bu sayfayı aynı bilgisayar üzerinde açtığında cookie üzerinden bilgilerine erişelecek ve otomatikmen site üzerinde hoşgeldiniz ….. yazısı belirecektir. Taa ki 3 ay dolana dek ya da kullanıcı çerezleri temizleyene dek..

Biz örneğimizde ismi tabi İsmail GÜRSOY gibi standart bir şekilde verdik, bu örnekler basit örnekler olması nedeni ile ismi herhangi bir veritabanı vs den çekme gibi detaylı işlemlerin yeri burası değil 🙂 Daha ilerleyen zamanlarda..

Cookie kullanmak bir zorunluluk değildir, bazı sitelerde bilerek cookie kullanılmaz, çünkü kullanıcılar cookie kullanıldığında ilgili siteye tekrar girdiklerinde kendilerinin tanınmasından rahatsızlık duyabilirler.. Dolayısı ile cookie kullanımıcı sizin tercihinize bağlıdır. İsterseniz kullanırsınız, belirtmezsiniz :))

Bir yorum

  1. Dostum Bu oluşturduğum cookie chrome’da çalışmıyor fakat iexplorer’da çalışıyor nedeni nedir söylermisiniz cookielere izin ver demeyin izin verdim çünkü. Güzel bir açıklaması olan varsa yazsın. Teşekkürler şimdiden.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir