Bu yazımda
HttpModule kullanmayı ve
HttpModule ile neler yapabileceğimizi anlatmaya çalışacağım. Bloğumda zaman zaman eklemeler, güncellemeler yapıyorum. Son olarak bu yazımda anlatacağım Module kullanarak sistem açma ve kapatma işlemi yapan bir uygulama geliştirdim ve kullanmaya başladım. Yazımda
HttpModule'ün ne olduğundan çok nasıl kullanıldığını ve neler için kullanabileceğimizi anlatacağım. Şimdi .Net ile hazırladığımız web projelerinde
HttpModule oluşturmaya ve nasıl kullanacağımıza bakalım.
Örnek olarak vereceğim kodlarda bloğumda da kullanmaya başladığım sistem açma ve kapatma işlemini gerçekleştiren kodları vereceğim. Bu şekilde yaptığımız bir sistemi istediğimiz anda kullanıcılara kapatabilir ve çalışmalarımızı yapabiliriz. Açma kapatma dışında Module kullanarak çok farklı ve kullanışlı uygulamalar geliştirebiliriz. Şimdi kodlarımıza bakalım.
namespace MehmetDuran
{
public class AcKapaModule : IHttpModule
{
public void Dispose() { }
public void Init(HttpApplication context)
{
context.BeginRequest += new EventHandler(context_BeginRequest);
}
void context_BeginRequest(object sender, EventArgs e)
{
HttpApplication context = (HttpApplication)sender;
string Url = context.Context.Request.RawUrl;
if (!Url.Contains("Login.aspx") && !Url.Contains("Admin.aspx"))
{
context.Context.Response.Clear();
context.Context.Response.Write("Sitedeki çalışmalardan dolayı kapalıyız.");
// burada yazıdaracağımız metni herhangi bir sayfayı render ederek alabiliriz.
// Örneğin kapali.html sayfası varsa bu sayfanın içeriğini alıp yazdırabiliriz.
context.Context.Response.End();
}
}
}
}
Bu şekilde
HttpModule'ü oluşturduktan sonra sistemde kullanmak için
Web.config dosyamızda aşağıdaki gibi bir ekleme yapmalıyız.
<httpModules>
......
<add name="AcKapaModule" type="MehmetDuran.AcKapaModule"/>
</httpModules>
Bu şekilde ekleme yaptıktan sonra sistemimizde Module'ümüz çalışacaktır. Ancak mantıklı olan bu module'ü istediğimiz anda çalıştırıp, istediğimiz anda kapatmaktır. Bunun için Xml bir yapıya sahip olan Web.config dosyasında ekleme ve çıkarma yapmalıyız. Bloğumda açma ve kapatma sistemi de bu şekilde çalışıyor. Eğer bu module'ü çalıştırmak istiyorsam web.config'e yukarıda verdiğim kodları ekliyorum. Eğer module'ü kapatmak istiyorsam web.config'de var olan Module satırını kaldırıyorum. Tabiki bunu el ile yapmıyorum. Bu işlem tamamen Xml dosyayı okuma, parse etme ve tekrar kaydetme işlemi. Bunu daha sonraki yazılarımda yazmayı düşünüyorum.
HttpModule kullanarak neler yapabileceğimiz konusuna gelmek istiyorum. Öncelikle örnek kodlarda verdiğim gibi sistem açma ve kapatma işlemi yapabiliriz. Bunun dışında sistemde üyelik varsa üyelik kontrolü yapan bir module yazabiliriz. Bunu dışında kullanmayı düşündüğüm ve en kısa sürede hazırlayacağım ziyaretçi bilgileri ve istatitistikleri module'ü yazabiliriz. Sisteme gelen tüm ziyaretçilerin bilgilerini alan ve istatitstiklerini tutan bir module oldukça kullanışlı olur. Bu türlü ihtiyaçlar için
HttpModule oluşturup kullanabiliriz.
Örnekte hazırladığım uygulama için sadece BeginRequest eventını kullanmak yeterli oluyor. Ancak ihtiyaçlara göre tanımlanmış olan diğer eventları da görebiliriz. Bu eventları görmek için Visual Studio'nun Intellisense özelliğinden faydalanabilirsiniz.
İyi Çalışmalar.