Global.asax Nedir?

27 Şubat 2012
Posted by Çağatay Yıldız
6246 Views

Merhaba arkadaşlar Bloğumuzun ilk yazısında ASP.net tarafından üretilen uygulama ve oturum bazlı Global.asax dosyasından bahsedeceğiz. Server bazlı çalışan ve kök dizininde bulunan global.asax dosyası kullanılması zorunlu olmayan bir dosyadır fakat gerek güvenlik gerekse uygulama bazlı çalıştığı için bize dinamik bir yapı sağlar. Çok klasik ve bir o kadar güzel bir örnek olarak sitemizde online bulunan insan sayısını bu sayede çok az kod yazarak ekrana yazdırabiliriz. Bu örneği bir sonraki makalemizde vereceğiz. Gelelim global.asax dosyasının içeriğine. Dosyamızı visual studio ortamında web sekmesini tıkladıktan sonra Global Application Class yazılı yeri seçerek ekliyoruz(Projenizi Empty olarak seçtiğinizi varsıyoruz yoksa Global.asax dosyası default olarak projenizi oluşturduğunuzda gelecektir)

Glabal.asax dosyası

Dosyamızı ekledikten sonra karşımıza default olarak Global.asax dosyası içinde bulunan fonksiyonlar çıkıyor. Çıkan fonksiyonları incelemeden önce global.asax dosyasının miras aldığı HttpApplication sınıfına bir göz atalım. Miras alınan bu sınıf Global.asax ın içerisinden kolaylıkla yöneteceğimiz birazdan göreceğimiz bir çok event i içerir. IIS uygulamalarının ilk ve son çalışmasını hata verdiği anı gibi bir çok server tabanlı olayı yakalar. Bu sınıfı başka bir makalemizde ayrıntılı olarak inceleyeceğiz Ayrıca Global.asax server üzerinde çalışan bir uygulama olduğu için güvenlik açısından herhangi bir istekte bulunulduğunda(request) kullanıcı tarafından görülmez. Bu açıdan web.config le benzer bir işleyiş içindedir. Gelelim bu eventleri içerisinde bulunduran Global.asax dosyasının içeriğine

 protected void Application_Start(object sender, EventArgs e)
        {

        } 

Uygulama ilk başlatıldığı anda çağrılır. IIS in başlamasından sonra kullanıcıya gelen ilk istekte gelir. Loglama(data akışını takip)için oldukça uygun bir eventtir. Uygulama kapanıncaya kadar çalışır.

protected void Application_End(object sender, EventArgs e)
 {

 }
 

Uygulama sona erdiğinde çalışır. Application_Start ta tanımladığımız fonksiyonları burada sonlandırabiliriz.

protected void Application_Error(object sender, EventArgs e)
 {

}

Uygulamanın çalışırken hataları görebileceğimiz bir alandır. Hata yönetimi konusunda bir çok fayda sağlar.


protected void Application_BeginRequest(object sender, EventArgs e)
 {

}

Projemizde bulunan herhangi bir sayfadan istek çağrıldığında tetiklenen eventtir.


protected void Application_AuthenticateRequest(object sender, EventArgs e)
 {

}

Bir FormsAuthentication kullanılması durumunda kullanıcı sisteme başarılı bir şekilde giriş yaptığında tetiklenen eventtir. Bu sayede kullanıcı herhangi bir sayfaya yönlendirilebilir, rol atanabilir veya bilgisayarına cookie bırakılabilir.

protected void Session_Start(object sender, EventArgs e)
 {

}
 

Sitemizde bulunan herhangi bir sayfayı kullanıcı ziyaret ettiğinde çağrılır. İlk sayfa isteğinde çağrılır ve daha sonra çağrılmaz. Fakat sessionun timeout süresi dolmuşsa ve kullanıcı bu süreden sonra tekrar bir istekte bulunursa yeni kullanıcı gibi davranılıp bu event tekrar tetiklenir. Kullanıcınının siteyi ilk ziyareti sırasında yazılacak fonksiyonlar burada bulunur. Online kullanıcı sayısı gibi

protected void Session_End(object sender, EventArgs e)
 {
} 

Kullanıcının timeout olması durumunda bu event tetiklenir. Yukarıda yazılan bir çok fonksiyonla ilgili işlem burada yapılabilir. Online kullanıcının siteden çıkması vb. Bu yazımızda ASP.net in bize oldukça kolaylık sağladığı bir dosyayı inceledik. Böylelikle uygulama bazlı işlemlerde bize ne gibi kolaylıklar yapabileceğini gördük.