MVC İle Kendi Attribute’lerinizi Oluşturma

MVC’de en çok kullanılan ve karşılaşılan kavramlardan biri olan Attribute’ler sayesinden işlerimizi çok kısa süre içerisinde görebilmekteyiz bu makalemizde kendi attribute’lerimizi nasıl tanımlayabileceğimizi göreceğiz.

MVC ile kendi Attribute’lerinizi oluşturma

Bu makalemizde giriş açıklamasında belirtmiş olduğumuz gibi MVC’de kendi attribute’lerimizi nasıl oluşturacağımızı göreceğiz Attribute örneğimizi yetki üzerine yapacağız belirletiğimiz Controller veya Action’lara yetki attribut’ünü ekleyerek yetkisiz işlemleri engelleyeceğiz. şimdi başlayacalım öncelikle Yetki Attribute’ü için Yetki adında bir class oluşturuyorum ve ActionFilterAttribute sınıfını inherit(kalıtım) ediyorum Yetki sınıfıma alttaki koddada gördüğünüz gibi;

Ben burada basit bir mantıkla session’daki yetki değeri 0 ise Index’e yönlendiriyorum Session değerinide deneme için projenizdeki Global.asax dosyasında Session_Start metodu içerisine Session[“yetki”] = 0; değeri atarayak test ediyorum eğer 0 değilde 1 atasaydık Yetki attribute’ünü eklediğimiz Controller veya action’lar yetkisi varmış gibi düşünüp sayfalara ulaşılmasını sağlayacaktır burada siz projenizde 0-1 ile değilde örnek veri tabanında yetki ile alakalı bir tablonuz bulunuyordur oradaki yetkilere bağlı olarak Yetki classı içerisinde session’daki kullanıcının gerçek id’sini alarak veritabanı kontrolü yaparsınız yetkinin olup olmadığı kontrol eder öyle ulaşmasını sağlarsanız bizim bu örnekteki amacımız sadece mantığı anlatabilmektir.

Şimdi Yetki adlı Attribute’ümüzün kullanımı görelim.

Controllere’a yetki eklemek için alttaki kodu kullanabilirsiniz;

Contoller’e yetki attribute’ünü eklerseniz attribute’ü eklediğinizi controller’daki tüm action’larınızda geçerli olacaktır.

Fakat alttaki gibi bir kullanımda sadece Create Action’undan Yetki attribute’ü geçerli olacaktır.

İçeriği puanla diğer kullanıcılara ışık tut

Murat Öner sitesinden daha fazla şey keşfedin

Okumaya devam etmek ve tüm arşive erişim kazanmak için hemen abone olun.

Okumaya devam et