Merhaba arkadaşlar bu makalemde sizlere web.config dosyasında authentication hakkında kısa bilgi vereceğim. Web uygulamalarında üyelik siteminde veriler veri tabanında saklanmaktır. Bu Bilgiler web servis yoluyla yada metin tabanlı dosyadan da getirme durumları olabilir. Web config’de Kullanıcı ad ve şifre saklamanın mantığı web uygulamamızda sadece bir tane kullanıcı adı ve şifre kullanıyorsak ve bu kullanıcıların detaylı bilgilerine ihtiyacımız yoksa ,veri tabanında bu kullanıcı için bir tablo ve bunun insert,update,delete işlemi ile uğraşmak istemeyebiliriz. Bu tip uygulamalarda web.config’ bilgilerimizin FormsAuthentication işimizi kolaylaştırıyor.
Şimdi sizlere örnek ile işlemleri nasıl yapıldığını ve yönetildiğiniz inceleyelim.
web.config dosyasında system.web > authentication > forms > credentials elementi altına <user> elementleri ile tanımlayacağımız kullanıcı bilgileri aşağıdaki kod parçasında görülmektedir.
web.config
<system.web>
<authentication mode="Windows">
<forms>
<credentials passwordFormat="Clear">
<user name="yasin" password="1245"/>
<user name="ahmet" password="asdasd"/>
</credentials>
</forms>
</authentication>
</system.web>
<credentials> elementi içerisindeki passwordFormat bilgisi kullanıcılar için tanımlanan şifrenin hangi formatta saklanacağını belirliyor. Kullanabileceğimiz formatlar Clear, MD5, SHA1. Burada Clear kullandık, yani şifreler aynen yazıldığı gibi olacak, herhangi bir hashleme yöntemi yok. Eğer kullanıcının şifresini MD5 veya SHA1 formatıyla hashlersek, hashlenmiş şifre metnini <user> elementi içerisindeki password niteliğine atamamız gerekiyor. web.config dosyasının başkaları tarafından görüntülenmesi ve kullanıcıya ait şifrenin öğrenilmesini istemiyorsak tabi ki MD5 veya SHA1 kullanmalıyız. Bir metnin MD5 veya SHA1 formatındaki değerini elde etmek için FormsAuthentication.HashPasswordForStoringInConfigFile metodunu kullanabilirsiniz.
Kullanıcıların doğrulanması için ise FormsAuthentication sınıfına ait Authenticate metodunu kullanmamız gerekiyor. Bu metot kullanıcı adı ve şifresi bilgilerini alarak, web.config'de yer alan bilgilerle karşılaştırma yapıyor ve bilgiler doğru ise boolean tipinden true, değilse false değeri döndürüyor. Aşağıdaki örnek kodlarla böyle bir kontrolü gerçekleştirebiliriz.
Not:Web.config dosyasında güncelleme işlemi yaptığımızda uygulama restart etmektedir. Bu nedenle ,özellikle canlı ortamlarda <user> elementi içerisindeki kullanıcı bilgilerini sıklıkla değiştirirken uygulamanın yeniden başlatılacağını unutmayın.
Login.aspx sayfamızdaki kodlar aşağıdaki gibidir.
public partial class Login : System.Web.UI.Page
{
protected void BtnGiris_Click(object sender, EventArgs e)
{
if (FormsAuthentication.Authenticate(TextBox_Kullaniciadi.Text, TextBox_Sifre.Text))
FormsAuthentication.RedirectFromLoginPage(TextBox_Kullaniciadi.Text, false);
else
Response.Write("Kullanıcı Adı ve Şifre Hatalı Tekrar Deneyiniz !");
}
}
Bu makalemizinde sonuna geldik bir dahaki makalede görüşmek üzere.