ASP.NET ile Form Yetkilendirmesi ( Form Authentication)
Web’in kullanım amacı bilgi paylaşımı ve bizde sitelerimizi bu amaç doğrultusunda hazırlıyor ve yayınlıyoruz. Fakat yeri geldiğinde yayınladığımız bilgilerin sadece yetkili kullanıcılar tarafından görüntülenmesini isteriz. Web sitemizden istekte bulunan ziyaretçinin içeriği görmeye yetkili biri olup olmadığını anlamak için ondan daha önce temin etmiş olduğumuz bir kullanıcı adı ve parola isteriz. Girdiği bilgiler elimizdekilerle uyuşuyorsa içeri buyur ederiz, uyuşmuyorsa kapı dışarı !
Microsoft ASP.NET te, gelen ziyaretçinin yetkisini sınayabilmemiz için bize üç seçenek sunuyor. Windows Authentication, Form Authentication ve MSN Passport. Biz birazdan Form Authentication yöntemini inceyeceğiz
Form Authentication
“Form Authentication” yöntemini kullanabilmemiz için öncelikli olarak web.config dosyamızda uygulamamızda “Form Authentication” kullanacağımızı, yetkisiz ziyaretçilerin hangi sayfaya yönlendirileceği ve yetkisiz ziyaretçileri bildiren değişiklikleri yapmamız gerekiyor.
Örnek Uygulamamızda WebForm1.aspx isimli içeriğin bulunduğu ve Login.aspx isimli ziyaretçinin kullanıcı adı ve parolasını girip kendini tanıtabileceği iki dosyamız var.
Web.Config dosyamızda bulunan <authorization> etiketini aşağıdaki gibi değiştirelim.
<authorization>
<deny users="?" />
</authorization>
Böylece uygulamamızda tanınmayan tüm kullanıcıların girişini yasaklamış oluyoruz. Peki siteye girişi herkesi yasaklarsak ziyaretçiler kendilerini nasıl tanıtacaklar ? Şimdide yabancı ziyaretçinin kendisini tanıtabilmesi için bir şans verelim.
<authentication mode="Forms">
<forms name=".mutasyon" loginUrl="Login.aspx"
protection="All" timeout="30" path="/" />
</authentication>
Artık yasaklı ziyaretçilerimiz Login.aspx'e yönlendirilecek. Bizde şimdi Login.aspx’e gidip yasaklı ziyaretçi ile Login.aspx arasında nasıl bir diyalog kuruluyor inceleyelim.
Login.aspx girilen kullanıcı adı ve parolasını doğruladıktan sonra ziyaretçinin yabancı biri olmadığına kanaat getirip giriş yetkisi verebilmesi için System.Web.Security altıdna bulunan FormsAuthentication sınıfının RedirectFromLoginPage fonksiyonunu kullanıyor. Böylece ziyaretçi yetkisiz iken talep ettiği sayfaya geri gönderiliyor.
if ( TextBox1.Text == "mutasyon" && TextBox2.Text == "123" )
System.Web.Security.FormsAuthentication.RedirectFromLoginPage("testUser", false);
else
Response.Write("Kullanıcı Adı veya Parola yanlış !");
Ziyaretçi kullanıcı adı ve parolasını doğru girmişse artık site içerisinde rahatlıkla dolaşabilir. Ziyaretçinin oturumunu kapatmak ise gayet basit :
System.Web.Security.FormsAuthentication.SignOut();