Arkasokak Logo






Asp.net

İnternet Teknoloji Tasarım icinde Asp.net konusu , 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 < authentication mode ="Windows" /> bölümü ile ilgileneceğiz.Bu bölümü biraz açalım. ...


Cevap
  #1  
Eski 19-07-2006, 07:39 PM
empedoCles kullanıcısının avatarı
Müdavim
 
Giriş: Sep 2005
Mesaj: 123
empedoCles İtibar düzeyini kapadı
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 Forms
Authentication 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...
imza

#include <middleeast.h>

#define ISRAELIS foul_beasts






empedoCles kullanıcısına MSN aracılığı ile mesaj yolla
Alıntı Yaparak Cevapla
Cevap

Konu Araçları
Görünüm Modları



Saat 05:42 PM.


Copyright ©2005 - 2008 Arkasokak.Net
Tasarım: NoDRaC
Bize Ulaşın - Gizlilik İlkesi - En Üst
Powered by vBulletin
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
SEO by vBSEO 3.2.0