Dün akşam Coder Bilişim Akademisi’ nde verdiğim eğitimde anlattığım konuyu blogumda da makale olarak yayınlamak istedim. Umarım sizin için faydalı olur.

ASP.NET Core MVC içinde filtreler belirli bir evreden önce veya sonra kodlarınızı çalıştırmanıza izin verir.

Yapı içerisine dahil (Built-in) filtreler bazı görevleri yerine getirmek için önceden hazırlanmıştır. Örneğin authorization yetkisiz kullanıcıların kaynaklara erişimini engellemek için kullanılmakta, bir diğeri tüm isteklerin HTTPS üzerinden geldiğinden emin olmak ve response caching gibi cache den cevap dönerek istek hattında kısa devre yapmak gibi.

Eğer isterseniz kendi özel filtrelerinizi geliştirerek uygulamanızdaki çapraz kesişimleri ele alabilirsiniz. İşlemler arasında kod kopyalamaktan kaçınmak istediğinizde, filtreler size çözüm sunacaktır. Örneğin hataların yakalamak için geliştireceğiniz kodları exception filer içerisinde ele alabilirsiniz. Böylece uygulama genelinde beklenmedik durumlar için kurallar uygulayabilirsiniz.

Nasıl Çalışır ?

Filtreler MVC Action Invocation Pipeline içerisinde çalışır. Buna kimi zaman Filter Pipeline da denilir. Filter pipeline, MVC action ı seçtikten hemen sonra çalıştırılır.

filter pipeline

Filtre Tipleri (Filter Types)

Her bir filtre tipi filter pipeline da farklı evrelerde çalışır.

  • Authorization filter : Bu filtre ilk kez kullanıcının geçerli istek için yetkili olup olmadığını belirlemek için kullanılır ve çalıştırılır.
  • Resource filter : Kimlik doğrulamadan sonra çalışan ilk filtredir. Filter pipeline nın geri kalanından önce kodlarımızı çalıştırabilir ve sonra filter pipeline ‘ı tamamlayabiliriz. Resource filter caching işlemleri için ya da diğer performans için yapacağımız kısa devre işlemleri için kullanışlıdırlar.
  • Action filter : Action filter lar action metot kodlarından hemen önce ve sonra çağrılırlar. Bir action’ a geçen parametreleri ya da dönen sonuçları manipüle etmek için kullanılırlar.
  • Exception filter : İstisna filtreleri yanıt gövdesine herhangi bir şey yazılmadan önce ortaya çıkan işlenmemiş istisnalara genel ilkeler uygulamak için kullanılır.
  • Result filter : Sonuç filtreleri, action sonuçlarının gerçekleştirilmesinden hemen önce ve sonra kod çalıştırabilir. Dikkat edilmesi gereken nokta ise yalnızca action başarılı bir şekilde yürütüldüğünde çalışırlar.

Aşağıdaki şekil bu filtrelerin filter pipeline içerisinde nasıl etkileşimde olduğunu gösterir.

filter pipeline 2

Şimdilik bu kadar başka bir makalede filtre uygulamalarını da ele alacağım.

 

Kaynak : http://docs.asp.net

 

Reklamlar