Asp.Net Authorization - Kullanıcı ve Rolleri Yetkilendirme
Önceki konumuzda kullanıcıları rollere eklemekten bahsetmiştik.
Sistemdeki kullanıcıları ve rolleri yetkilendirerek kimin sitedeki hangi bölümlere erişip erişemeyeceğini belirleyebiliriz.
Örneğin yonetim isminde bir klasörümüz olsun. Bu klasör içindeki sayfalara sadece admin rolündeki kullanıcılar ulaşabilsin, diğer roller ve kullanıcılar bu sayfalara giremesin diyebiliriz.
Sitedeki bir sayfa veya klasör için kullanıcıları engellemenin ya da izin vermenin en kolay yolu bunu web.config dosyasında yapmaktır.
Bildiğiniz gibi asp.net web sitelerinin kök klasöründe bir web.config yapılandırma dosyası bulunur. Bu dosya sitemizin genel ayarlarını içeren bir xml dosyasıdır.
Şimdi, sitemiz içindeki yonetim isimli klasöre ve bu klasör içindeki sayfalara/dosyalara;
-
admin ve editor rolündeki kullanıcılar erişebilsin
-
standart rolündekiler erişemesin
-
hiç oturum açmamış kullanıcılar erişemesin
şeklinde ayarlayalım. Bunun için web.config dosyamızda configuration düğümü içerisine aşağıdaki kodları eklemek yeterli olacaktır.
<configuration>
.
...
......
<location path="yonetim">
<system.web>
<authorization>
<allow roles="yonetici,editor"/>
<deny users="*" roles="standart"/>
</authorization>
</system.web>
</location>
</configuration>
Configuration düğümü içindeki diğer kodları silmeyin. Karışıklığı önlemek için location düğümünü configuration kapanışından hemen önce yapıştırabilirsiniz.
Birden fazla klasör için yetkilendirme yapacaksanız yukarıdaki location düğümünü hepsi için çoğaltabilirsiniz.
Ana klasördeki web.config dosyası yerine yetkilendirme yapılacak klasörlere birer web.config dosyası ekleyebilir ve yukarıdaki location düğümünü bu dosyalara yapıştırabilirsiniz. Böylece ana yapılandırma dosyamız gereksiz uzamamış olur.
Örneğin yonetim klasörü içine bir yapılandırma dosyası ekleyerek yukarıdaki kodları o dosya içine yapıştırmak isterseniz çok ufak bir değişiklik yapmanız gerekecektir:
<configuration>
.
...
......
<location path="">
<system.web>
<authorization>
<allow roles="yonetici,editor"/>
<deny users="*" roles="standart"/>
</authorization>
</system.web>
</location>
</configuration>
Değişiklik sadece path parametresindedir. Web.config dosyası zaten yonetim klasörü içinde olduğundan buradaki klasör adını sildik.
asp.net bir roldeki kullanıcıların bir sayfaya girmesini engelleme, kullanıcı ve rollere izin verme, asp.net rolleri engelleme, asp.net kullanıcı ve rol yetkilendirme, asp.net yetki verme, authorization, yonetici rolüne izin verme
KONU İLE İLGİLİ ÖRNEKLER
Bu konu ile ilgili örnek bulunmamaktadır.
4959 kez okundu.