Osman KURT

Yazılım Uzmanı | MVC Eğitmeni

ASP.Net ve Cookies kullanımı

Bilmiyorum farkettiniz mi hiç ama herhangi bir üyelik olan web sayfasına giriş yaptığımızda oturumumu açık tut diye bir checkbox bulunur bunu seçtiğiniz de oturumunuz siz özellikle kapatmadığınız takdirde sürekli açık kalır, yada yazılımcı ne kadar olarak belirlediyse o kadar diyelim. şimdi isterseniz gelin bizde projemizde kullanalım. Daha doğrusu ben bir örnekle anlatayım siz kendi projenizde kullanmak istediğiniz yere uygulayın.

 İlk olarak sayfamıza 2 adet textbox bir adet buton koyalım. butonumuza bastığımız anda cookies oluştursun projemiz. kodlarımızı alt kısımda ki gibi olacak;

login.aspx.cs sayfamız;

HttpCookie myCookie = new HttpCookie("osmankurt");
myCookie["Adı"] = TextBox1.Text;
myCookie["Parola"] = TextBox2.Text;
myCookie.Expires = DateTime.Now.AddDays(2); // cookiesimiz 2 gün kalsın dedik.
Response.Cookies.Add(
myCookie); // cookies ekledik
Response.Redirect("default.aspx"); 

bu sayfamız da kodlarımız bu kadar arkadaşlar. Şimdi oluşturduğumuz cookies de ki değerlerimizi diğer sayfamızda okutalım bakalım doğrumu değer oluşturuyoruz.

default.aspx.cs;

load olayına alt kısımda ki kodlarımızı yazıyoruz;

HttpCookie myCookies = Request.Cookies["osmankurt"]; // cookiesimizi okuduk
Label1.Text = myCookies["Adı"]; // değeri nesneye atadık
Label2.Text = myCookies["Parola"]; // değeri nesneye atadık 

Bu kodlarımızı da yazdıktan sonra işlemimizin başarılı birşekilde gerçekleştiğini göreceksiniz arkadaşlar.

Görüşmek Üzere;

Osman KURT

Yazılım Geliştirici ve Grafiker 

Yorumlar (3) -

  • ahmet

    20.01.2013 04:35:55 | Yanıtla

    Hocam Cookies süresi saat veya  gün değilde kullanıcı tarayıcıdan sayfayı kapatana kadar olarak almamızın bir yolu varmı? Yani kullanıcının cookileri 2 saat tutulduğunu varsayalım sayfayı kapattımı cookieleri silelim veya sessionda ki gibi cookie bitirme olayı varmı?

    • osmankurt

      20.01.2013 05:52:41 | Yanıtla

      Merhaba Ahmet,
      Senin dediğin işlem nasıl olur biliyormusun, heni bizim cookie silme kodumuz var ya o kodu global.asax dosyasın da Application_End alanına yazarsak olur diye tahmin ediyorum çünkü proje en son bu alana girer biz de cookie varsa burada sileriz olur biter Laughing

  • ahmet

    20.01.2013 13:31:01 | Yanıtla

    Anladım mantıklı Smile. Hocam son zamanlarda cookie güvenliğine kafayı takım ilk açıldığında acık akademi de bile cookie bilgileri alınan kullanıcıların hesabı ile oturum açılabilme açığı olduğunu duymuştum bir kaç yere yazdım ama açığın çözümü ile ilgili detaylı bilgi alamadım. Bana gelen projelerde saatlerce ya da günlerce cookie tutmayı gerektirecek durumlar yok genelde session ile işimi bitirebiliyorum fakat kullanıcının panelde açık olduğu sürece oturumunu kaybetmemesi önemli bir durum. Session süresini ne kadar uzatırsam uzatayım, daha süre dolmadan session düşüyor bu yüzden, bu tür projelerde kullanıcının siteyi kapattıktan sonra cookieleri silmek güvenlik açısından bir yöntem olabilir diye düşünüyorum, konuyu bu gün biraz araştırırken şu yazı dikkatimi çekti.

    "HttpCookie nesnesinin Expires özelliği ayarlanmazsa Cookie hazırlanır ama istemci bilgisayara kaydedilmez ve kullanıcı browser penceresini kapattığında bu Cookie silinir. "

    Tam da aradığım şeymiş ama tabi kullanıcı adı ve şifreyi cookie de tutacağımdan kullanıcı siteyi kapatmamışsa yani cookie henüz silinmediyse; cookieleri çalabilecek türden zararlı kodun bulunduğu link kullanıcıda açtırılırsa cookie bilgileri yine alınır sonuç olarak güvenlik hala sağlanmış değil. Acaba cookieleri şifreli bir şekilde tutarsak aşarmıyız sorunu, biraz daha araştırayım Smile

Loading