|
#1
| ||||
| ||||
| Asp.net Bu makalede ASP.Net'te güvenlik işlemlerinden bahsedeceğiz.ASP.Net'te güvenlik için biraz web.config'den bahsedelim.Projemizle ilgili ayarların bulunduğu bir XML dosyasıdır.Biz bu dosyada <authenticationmode="Windows"/> bölümü ile ilgileneceğiz.Bu bölümü biraz açalım. Burayı kullanarak güvenliğimizi sağlarız.mode özelliğinin alacağı değerler Windows,Forms,Passport ve None dır. Windows : Bu değer windows'tan gelen kullanıcılar içindir.Daha çok intranet uygulamaları yazarken kullanmak en mantıklısı olacaktır. Forms : Formdan gelen kullanıcılar içindir.Bu metodu kullanırken birkaç parametre bilmek gerekmektedir.Bu parametreler aşağıdadır; <formsname=".LoginS"loginUrl="WebForm2.aspx"protection="All"timeout="60"/> Passport : Burada ise passport'u olan kullanıcıları içindir.Burayı esgeçelim çünkü Microsoft bu hizmetini para ile satıyor. None : Bu metodda ise güvenlik için kendi kodumuzu kendimiz yazarız.En özgür olduğumuz kısım burasıdır. Dikkat : web.config bir xml dosysıdır.XML dosyalarıda case sensitive dir.Yani büyük küçük harf duyarlıdır.O yüzden bu dosyada bir değişiklik yaparken dikkatli olmakta fayda var. web.config ile ilgili işlemler buraya kadardı.Şimdi ASP.Net projemize geçelim.İki tane WebForm ekleyelim ve devam edelim. Asp.Net'te güvenlik için system'in altında bulunan security class'ını import etmemiz gerekir.Şöyleki; Imports System.Web.Security bu namespace'deki FormsAuthentication class'ındaki bazı fonksiyonlar ise şunlardır; Authenticate(KullanıcıAdı,Sifre) : Bu metod web.config dosyasındaki kullanıcı adı ve şifreyi karşılaştırır.Bu sayede kullanıcıya izin verilip verilmeyeceği belirlenir. RedirectFromLoginPage(KullanıcıAdı,Cookie) : Kullanıcıya gerekli izni verdikten sonra istenilen sayfaya yönlendirilir.Cookie tutulup tutulmayacağına ise True yada False yazarak belirtiriz.Eğer True verirsek sayfadan çıkıp tekrar girdiğimizde direk login sayfasına gideriz.Eğer False verirsek kullanıcı SignOut olana kadar sayfalar arasında gezebilecektir. ve çıkıp girmesi sorun olmayacaktır. SignOut() : SignOut ile kullanıcıya çıkış işlemi yaptırılır.Depolanan cookieler temizlenir. GetRedirectUrl(KullanıcıAdı,Cookie) : Kullanıcının gitmek istediği sayfa bu metodla öğrenilebilir. Şimdi bir uygulama yapalım.Daha önceden açtığımız WebForm1.aspx'e iki adet TextBox bir adet Button ve Label koyalım.WebForm2.aspx'ede bir tane label ve button koyarsak yeterli olacaktır. Şimdi web.config dosyasını açın ve authentication bölümünde aşağıdaki değişiklikleri yapın. <authenticationmode="Forms"> <formsname=".Logins"loginUrl="WebForm2.aspx"protection="All"timeout="60"> <credentialspasswordFormat="Clear"> <username="ilker"password="kkk"/> <username="deneme"password="abc"/> </credentials> </forms> </authentication> Sonra webform1.aspx'e gidip button click olayına gerekli kodları yazalım; WebForm1'in kodları; Sadece button'a kod yazdık. security class'ını import etmeyi unutmayın. PrivateSub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click If FormsAuthentication.Authenticate(TextBox1.Text, TextBox2.Text) Then FormsAuthentication.RedirectFromLoginPage(TextBox1 .Text, True) Response.Redirect("WebForm2.aspx") Else Label1.Text = "Kullanıcı adı ve/veya şifre yanlış" EndIf EndSub WebForm2.aspx'in kodları; Burayada sadece Page_Load ve button1_click kısmına kod yazdık; PrivateSub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) HandlesMyBase.Load If User.Identity.IsAuthenticated Then'eğer kullanıcı authenticate olmuşsa Label1.Text = "Hoşgeldin : " & User.Identity.Name 'kullanıcının adını yaz Else'değilse Label1.Text = "Sen kimsin?" 'mesaj ver ve butonu gizle Button1.Visible = False EndIf EndSub PrivateSub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click System.Web.Security.FormsAuthentication.SignOut() 'tüm cookieleri sil ve webform1'e dön Response.Redirect("WebForm1.aspx") EndSub Bu kodları denedikten sonra birde şunu deneyin,WebForm1.aspx açıkken direk adres çubuğundan WebForm1.aspx'i WebForm2.aspx olarak değiştirin ve entere basın.Sizi tanımayacaktır.Tabi giriş yaptıysanız ilk önce bi signout yapın. Evet bir makalenin daha sonuna geldik.Hoşçakalın... ![]() #include <middleeast.h> #define ISRAELIS foul_beasts |