Asp.net ile sitemize giren online kullanıcı sayısını bulmak için yapmamız gerekenlere bakalım. Bu sayfa kontrollerini Global.asax kullanarak da gerçekleştirebiliriz. Global.asax dosyası sayfadaki olayların tutulduğu bir konfigürasyon dosyasıdır diyebiliriz. Gerçekleşen olaylar sonucu tetiklenir ve bize bir nevi sayaç görevi görür. Şimdi bir adet Web Application yaratalım ve yeni bir Default.aspx sayfası açalım. Ardından projemize bir adet daha Global application class‘ı ekleyeceğiz. gelen asax dosyasını şu şekilde güncelleyelim.
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Security; using System.Web.SessionState; namespace expOnlineUser { public class Global : System.Web.HttpApplication { protected void Application_Start(object sender, EventArgs e) { Application.Add(“onlineKullanici”, 0); } protected void Session_Start(object sender, EventArgs e) { int onlineKullanici = Convert.ToInt32(Application.Get(“onlineKullanici”).ToString()); onlineKullanici++; Application.Set(“onlineKullanici”, onlineKullanici); } protected void Application_BeginRequest(object sender, EventArgs e) { } protected void Application_AuthenticateRequest(object sender, EventArgs e) { } protected void Application_Error(object sender, EventArgs e) { } protected void Session_End(object sender, EventArgs e) { int onlineKullanici = Convert.ToInt32(Application.Get(“onlineKullanici”).ToString()); onlineKullanici–; Application.Set(“onlineKullanici”, onlineKullanici); } protected void Application_End(object sender, EventArgs e) { } } } PageLoadda ise if (!Page.IsPostBack) { Page.Response.Write(“Online Kullanıcı Sayısı: ” + Application.Get(“onlineKullanici”).ToString()); }
Bu kodları yazdıktan sonra sayfaya gelen her kullanıcıda session tetiklenecek , kullanıcı çıktığında ise azalacak. Bu mantık ile bir sayaç yapabilir ve giren çıkanı kontrol edebiliriz. İyi çalışmalar herkese.