Son Haberler
Anasayfa / Yazılım / ASP.NET / User Session – Session State Kullanımı

User Session – Session State Kullanımı

User Session ASP.NET uygulamalarında oturum durumunu yönetebilmek amacı ile kullanılır. Tıpkı Aplication State gibi bir çok sayfa üzerindeki oturum bilgisini saklamak amacı ile kullanılmaktadır. Ancak Application State’ten farklı olarak Session State tüm kullanıcılar tarafından erişilebilir. Session State içinde saklanan her nesne sitemizi ziyaret eden kullanıcılar ile doğrudan bağlantılıdır. Session State sunucu üzerinde yani server üzerinde depolanır ve her bir kullanıcı için server tarafında bu kullanıcılara ait verileri saklayan belli bir oranda hafıza ayrılır.

Session State içinde bilgi yazmak ya da buradan bilgi okumak tıpkı Application State yönetimine benzemektedir. Aradaki fark sadece şudur, Application State içinde Application nesnesini kullanırken, Session State içinde Session nesnesini kullanırız. Bununla birlikte bir diğer fark, Session State locking ve unlocking işlemlerini desteklemez.

Session State’i için bir önceki makalede yer alan örnek üzerinden işlem yapmak istiyorum.

Bir önceki makale için aşağıdaki linke göz atabilirsiniz :

http://www.ismailgursoy.com.tr/application-state-kullanimi/

Burada bir sayaç uygulaması yapmıştım. Şimdi ufak tefek düzenlemeler ile Application nesnesi yerine Session nesnesini kullanacağım.

Böylelikle Default.aspx sayfası kodlarım :

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





    


    
Bu sayfa için defa istekte bulunulmuştur.

Default.aspx.cs sayfası :

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

public partial class _Default : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        if (Session["SayfaSayac"] != null && (int)Session["SayfaSayac"] >= 10)
        {
            Session.Remove("SayfaSayac");
        }

        if (Session["SayfaSayac"] == null)
        {
            Session["SayfaSayac"] = 1;
        }

        else
        {
            
            Session["SayfaSayac"] = (int)Session["SayfaSayac"] + 1;
            
        }

        myLabel.Text = Convert.ToString(Session["SayfaSayac"]);
    }
}

Sayfamızı farklı browserlerda yüklediğimiz de ya da farklı anlarda yüklediğimizde Session State hit counter durumunu her istekte yenileyecek ve her bir oturum için güncelleme yapacaktır.

Application state içinde saklanan nesneler gibi Session State nesneleri serverde saklanır demiştim, herhangi bir kullanıcı bir sayfada oturum açtığında bu kullanıcıya ait veriler Session State üzerinde tutulur. Daha sonra bu kullanıcı uygulamadan yani web sitesinden ayrıldığında bu kullanıcıya dair bilgiler Session State üzerinde bir süre daha tutulmaya devam eder. ASP.NET ortamında varsayılan olarak bu süre 20 dakikadır. Bu süreyi Session State nesnesi içinde Timeout özelliği ile ayarlayabiliriz.

Bu ayarlamayı uygulamamızda istediğimiz kod bloğu içinde kullanabiliriz ancak genel olarak kullanım alanı Global.asax dosyası üzerindedir. Bir Global.asax dosyası oluşturup bu dosyayı açtığımızda Session_Start event handleri içinde genel olarak bu düzenlemeyi yapabiliriz. Session_Start metodu her kullanıcının sitemizi ziyaret ettikleri ilk istekten hemen önce çalışan metottur. Bu metot bize oturum değişkenlerini başlatmak, bunlara erişmek ve gerekli düzenlemeleri yapmak için bize imkan tanır.

Örnek olarak Global.asax dosyası üzerinde Session_Start metodu içinde Timeout özelliğini 15 dakika yapıyorum.

<%@ Application Language="C#" %>

Böylelikle bir kullanıcı sitemizi terk ettikten 15 dakika sonra Session State üzerindeki bilgileri 15 dakika sonra silinecek..

{filelink=23}

Bir sonraki yazıda görüşmek dileği ile..

Bir yorum

  1. çok teşekkürler.
    paylaşımlarınızın devamını dilerim.
    iyi çalışmalar..

Bir cevap yazın

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