Asp.Net Session
Asp.net Session web uygulamalarında oturum durumunu yönetebilmek amacı ile kullanılır. Herhangi bir web sunucusuna bağlandığımızda tıpkı gerçek hayattaki gibi bize verilen bir çeşit kimlik gibidir. Asp.Net Session en önemli özelliği sayfalar arası değerleri taşıyabilmemizi sağlamasıdır. Asp.Net Session süresi tarayıcının başlatılmasıyla ve kapatılması arasında geçen süre kadardır. Örneğin kayıtlı olduğunuz bir web sitesinde kullanıcı adı ve şifre ile giriş yaptığınızda ve sayfalar arasında geçişler yaptığınızda SessionID değeri ile sunucu tarafından tanınırsınız ve ulaşmanız gereken doğru sayfalara erişebilirsiniz.
Asp.Net SessionID
Asp.Net otomatik SessionID oluşturur. Otomatik oluşan bu SessionID değerimize nasıl ulaşabiliriz. Bunun için aşağıdaki kodu deneyerek görebiliriz.
protected void Page_Load(object sender, EventArgs e)
{
LtSession.Text = Session.SessionID.ToString();
}
Asp.Net Session otomatik oluşan SessionID sayfanızı yenilediğinizde veya yeni pencere açtığınızda yine aynı SessionID değerine sahip olduğunu göreceksiniz. Tarayıcıyı kapattığınızda oturumunuz sonlanacaktır ve tekrar açtığınızda yeni bir SessionID değerini alacaktır.
Asp.Net Session Tanımlama
Asp.Net Session iki farklı şekilde tanımlabilir. Şimdi aşağıda Session tanımlamalarımızı yapalım.
1.Yöntem
protected void Page_Load(object sender, EventArgs e)
{
Session.Add("KullaniciAd","yayirgul@yunusayirgul.com");
}
2.Yöntem
protected void Page_Load(object sender, EventArgs e)
{
Session["Parola"] = "yayirgul";
}
Asp.Net Session Kullanımı
Asp.Net yukarıda tanımladığımız Session’a aşağıdaki şekilde yazarak erişebiliriz.
protected void Page_Load(object sender, EventArgs e)
{
if(Session["KullaniciAd"] != null Session["Parola"] != null)
{
LtKullaniciAd = Session["KullaniciAd"].ToString();
LtParola = Session["Parola"].ToString();
}
else
{
Response.Redirect("default.aspx");
}
}
Asp.Net Session TimeOut
Asp.Net Session Timeout dakika cinsinden değer almaktadır. Asp.Net ile oluşturduğumuz bir Session otomatik olarak 20 dakika değer almaktadır. Session.Timeout almış olduğu değeri uzatabilir ve azaltabiliriz. Oluşturacağımız Session.Timeout sürelerimizi en iyi şekilde düzenlememiz önemlidir.Çünkü Session’lar sunucumuzda yük oluşturabilir. Asp.Net Session.Timeout ömrünü Web.Config içinde aşağıdaki şekilde tanımlayabilirsiniz.
Asp.Net Session Abandon
Session.Abandon ile tanımladığımız kullanıcıya ait tüm Session’ları silmemizi sağlar. Tanımladığımız Session’ları sonlandırarak böylece sunucumuzdaki yüküde azalmış oluruz. Kullanım şekli aşağıdaki gibidir.
protected void Page_Load(object sender, EventArgs e)
{
Session.Abandon();
}
Asp.Net Session Remove
Session ile tanımladığımız herhangi bir Session’ı silmek isteyebiliriz. Böyle bir durumda Session’ın Session.Remove özelliğini kullanabiliriz. Kullanım şekli aşağıdaki gibidir.
protected void Page_Load(object sender, EventArgs e)
{
Session.Remove("KullaniciAd");
}