Aspnet MVC Session Kullanımı

Asp.net MVC de sunucu tabanlı durumlarda kullandığımız oturum yönetim yani session state kullanımı gösterip ardından oturum açma örneğini yapacağım.

Öncelikle.. Session nedir? sorusuyla yazımıza başlayalım.

Session Nedir?

Kullanıcının sayfayı görüntülediği anda başlayıp tarayıcının kapanana ya da session süresinin bitmesine kadar geçen süreye session (oturum) denir. Sunucu taraflıdır. Veri saklama işlemleri için kullanılır.

Basit bir örnek verirsek oturum açma (login) işlemi.

Asp.net MVC Session Kullanımına göz atalım..

Session Oluşturma

Session oluşturma işleminde 2 yöntemimiz bulunmakta;

Add metodu ile

Session.Add(string sessionName, object sessionValue);

sessionName = Oluşturacağımız sessionımızın ismi.

sessionValue = Oluşturacağımız sessionımızın değeri.

Diğer bir yöntemimiz ise;

Session["sessionName"] = "sessionValue";

yukarıdaki işlemden pek farkı yok ikiside session oluşturmaktadır.

Session Silme

Oluşturduğumuz bir sessionı silmek istediğimiz zaman Remove() metodunu kullanırız.

Session.Remove(string sessionName);

Parametre olarak silmek istediğimiz sessionName gönderiyoruz ve o sessionımızı silmiş oluyoruz.<

Silme işleminin birkaç yolu daha mevcut bunlardan RemoveAt() ve RemoveAll().

Session.RemoveAt(int sessionIndex);

Oluşturduğumuz sessionlardan hangisini silmek istiyorsak o session index numarasını yazıyoruz bunu kullanmak sıkıntılı olabilir tavsiye etmiyorum kaçıncı index olduğunu bilmemiz gerekir yanlış sessionları silebiliriz.

Session.RemoveAll();

Adında anlaşılacağına göre oluşturduğumuz bütün sessionlarımızı siler.

Sessiondaki Değeri Okuma

Burada oluşturduğumuz sessionımızın değerini okuyacağız.

string sessiondakiDeğer = Session["sessionName"].ToString();

Sessionıma sessionName'ini vererek o isimdeki sessionımın değerini string değişkenimize atamış olduk.

Session Varlığını Kontrol Etme

Bir session oluşturduk ama bu session duruyor mu ya da oluştu mu ? bilmiyoruz bunun için sessionsınımızı kontrol etmemiz gerekir bunun içinde.

string mesaj = (Session["sessionName"] == null ? "Sessionımız var":"Sessionımız yok");

kısa if ile (Ternary opertor) sessionımızı kontrol etmiş olduk buradaki kriterimiz session == null mı ?

Session kullanımından bahsetmiş olduk örnek bir login işlemi yapalım..

Index.cshtml [View] login formumuzu tasarladık.

Sıra geldi.. Controllerımıza burada HomeControllerımızı açıp şu kodları yazıyoruz.

[HttpPost]
public ActionResult Index(string kullaniciAd,string kullaniciSifre)
{
    //Session.Add("Kullanici", kullaniciAd);
    //ya da
    Session["Kullanici"] = kullaniciAd;
    return View();
}

Basit olarak login işlemi yaptık kullanıcı tarayıcı kapatana kadar ya da oturum süresi dolana kadar bir daha login formunu göstermiyoruz. Login olduğu adı ekranda gösteriyoruz.

Login olmadan önce sayfamız;

Login oldukdan sonra sayfamız;

Bildiğim kadarıyla bir şeyler yazmaya çalıştım inşallah birilerinin faydalanması dileğiyle..