MVC Session Kullanımı

Posted by

Selam arkadaşlar, bu yazımda .Net Session Kullanımı konusundan bahsedeceğim.

Session’ın kelime anlamı oturum demektir. Oluşturmuş olduğumuz internet sitemize giriş yapan her bir ziyaretçi için bir session oluşturulur. Session’lar server taraflı çalışmaktadır. Örneğin sitemizde üye girişi sistemi bulunmakta ve bir kullanıcı giriş yaptığında bu bilgiler bir session’da tutulur ve ziyaretçi aktif olduğu sürece Session(oturum) bilgisi kaybolmaz. Tabi session zaman aşımına uğramadığı ve kullanıcı çıkış yapmadığı sürece. Kullanıcının oturum süresi boyunca bu Session bilgisine ulaşıp herhangi bir işlem yaptırabiliriz.

Session nesnemizi nasıl oluşturabiliriz ve bunu nasıl kullanabiliriz?


[HttpPost]
public ActionResult Login(string username, string password)
{
if(username == "admin" && password == "123456")
{
// Session Add ile bir session oluşturulur.
// Bu session'a bir isim verilir ve tutulacak bilgi eklenir.
Session.Add("ActiveUser",username);

return RedirectToAction("Profile","Account");
}

TempData["LoginMessage"] = "Kullanıcı adı veya şifre yanlış!";

return View();
}

Gönderilen kullanıcı adı ve şifre doğru ise Session.Add() ile bir session oluşturulur. Bu sessiona bir isim verilir ve değeri eklenir. Yukarıda ActiveUser isimli bir session oluşturduk ve gönderilen username bilgisini Session’a ekledik. Daha sonra ise profil sayfasına yönlendirmesini sağlamış olduk. Eğer yanlış ise TempData ile ekranda mesajımızı gösterdik.

Şimdi profil sayfamızda bu Session’ı nasıl kullanabiliriz ona gelelim


public ActionResult Profile()
{
ViewBag.UserName = Session["ActiveUser"].ToString();

return View();
}

Session yazıp köşeli parantez içine de oluşturduğumuz session ismini yazdığımızda atadığımız değer gösterilecektir.

Session oluşturulmasını şu şekilde de gerçekleştirebiliriz.


Session["ActiveUser"] = "username";

Oluşturulan bir session nesnesini nasıl silebiliriz


public ActionResult Logout()
{
// Oluşturulan session ismi ile o Session silinir.
Session.Remove("ActiveUser");

// Session Clear ile de tüm oluşturulanlar silinir.
Session.Clear();

return RedirectToAction("Login", "Account");
}

Session oluşturma, okuma ve silme işlemi yukarıdaki gibi yapılabilir.

Bir sonraki yazıda görüşmek üzere…

4 comments

  1. Merhaba, session süresi bittikten sonra kullanıcıyı otomatik olarak hiçbir yere tıklamadan nasıl Login sayfasına yönlendirebilirim?

    1. Merhaba, session süresi bittikten sonra herhangi bir yere tıklasa bile otomatik olarak login sayfasına yönlenmesi gerekiyor. Eğer bir şey yapmadan bu işlemi sağlamak istiyorsanız da Session durumunu kontrol eden bir script ile de otomatik olarak yönlendirilmesini sağlayabilirsiniz.

  2. Merhaba,

    Hocam bu sesison süresini nasıl uzatabiliriz. Benim projem hostta çalışmakta ve 20 dakikadan az bir sürede bile session ölüyor. Nasıl bir çözüm bulabilirim ?

    1. Merhaba, Session süresini ayarlamak için kod tarafında Session.Timeout özelliğini ya da web.config dosyası içerisinde sessionstate özelliğini kullanarak bu süreyi belirtebilirsiniz.

Leave a Reply

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