ADO.NET ile Kullanıcı Giriş İşlemleri

St.AnGeR

Document Visor..
Katılım
17 Haz 2005
Mesajlar
1,832
Reaction score
0
Puanları
0
Konum
ιѕт              HHuser№: 9          Remote Admi
Kullanıcı bilgilerimizi veri tabanlarımız da tutarız. Kullanıcıların sisteme girişlerinde kullanacağımız bilgiler de genelde bu veri tabanlarında bulunmaktadır. Eğer ver tabanı olarak SQL SERVER kullanıyorsak veri tabanında kullanıcı bilgilerimiz sorgulamak için Stored Procedureleri kullanabiliriz burarda kullanıcıdan aldığımız kullanıcı adını ve şifre bilgilerini parametre olarak SQL SERVER’a gönderip bize bu kullanıcı adına ve şifresine sahip kayıt ta bulunan firma ismini geri döndürmesini isteyebiliriz. Eğer bu kullanıcı adına ve şifresine sahip bir kayıt yoksa yani kullanıcı girişi onaylanmamışsa bizle boş bir değer döndürecek bu sayede dönen değerden gelen veriye göre kullanışı girişlerimizi yapabiliriz..



Uygulayacağımız işlem basamakları aşağıdaki gibi olabilir.



1- SQL SERVER’da ANADB adında bir veri tabanı oluşturalım ve içinde Uyeler tablomuz bulunsun. Tablo yapımız aşağıdaki gibi olabilir.

mgo0112200517zg.jpg


2- İkinci olarak bu tablomuzda bulunan kayıtlardaki verileri doğrulayacak Stored Procedurü oluşturalım..



CREATE Procedure giris_Uye

Kod:
(

        @Email      nvarchar(50),

        @Password   nvarchar(50),

        @FirmaAdi  nvarChar(50)  OUTPUT

    )

    AS

 

    SELECT

        @FirmaAdi = FirmaAdi

 

    FROM

        Uyeler

 

    WHERE

        Email = @Email

      AND

        Sifre= @Password

 

    IF @@Rowcount < 1

    SELECT

        @FirmaAdi = ''

GO





Buradaki kodda Create Procedure ile prosedür tanımla mızı yaptıktan sonra 3 tane parametreyi prosedürümüze kabul ediyoruz. Email ve Password parametreleri kullanıcılarımızdan gelen parametreleri tanımladık ve en son kullanıcıya döndüreceğimiz FirmaAdını tanımlıyoruz. AS kısmından sonra bildiğimiz Sql cümleleriyle Belirttiğimiz Email ve Şifreye sahip olan kayıttan Kullanıcı adını döndürüyoruz. Email Primary KEY olduğu için aynı kullanıcı adına ve şifresine sahip kayıt olamıyor. IF kısmında ise eğer kullanıcı kaydı 1den küçükse yani yoksa FirmaAdi parametresini ‘’ boş olarak döndürüp GO ile prosedürümüzü bitiriyoruz..

Procudumuzu tamamladıktan sonra Permissions kısmından gerekli Exec yetkisini kullanıcımıza veriyoruz.
mgo0112200525cg.jpg


Server kullanıcılarınıza IIS Worker Process grubunu dahil etmelisiniz.





3- SQL SERVER tarafında işlemlerimizi yaptıktan sonra bu prosedürü kullanacağımız Ado.net kodunu aşağıdaki gibi yazabiliriz.





Public Function Giris(ByVal email As String, ByVal sifre As String) As String



'Aşağıdaki bağlantı cümlesini kendi sisteminize göre değiştebilirsiz.

'Burada veritabanı AnaDB olarak alındı.

Dim cn As String = "server= localhost ;packet size=4096;integrated security=SSPI;initial catalog=A" & _

"naDB;persist security info=False"



'Connection nesmemizi tanımladık

Dim myConnection As New SqlConnection(cn)



'Komut nesnemizi tanımladık ve de bu cümlede kullanacağımız storede prosüdürü

' ve de bağlantı nesnemizi yazdık en son CommandType olarak Stored prosüdür seçtik.

Dim myCommand As New SqlCommand("giris_Uye", myConnection)

myCommand.CommandType = CommandType.StoredProcedure





'Email ve Password parametrelerini tanımlıyoruz.

'Paranterz içinde sırasıyla parametre adı, tipi , ve de uzunluğunu belirtiyoruz.

'parametre içereceği değeri Value ile yazıyoruz.

'En altta bulunan kısımda ise Komut parametre koleksiyonumuza parametreyi ekledik.

Dim parameterEmail As SqlParameter = New SqlParameter("@Email", SqlDbType.NVarChar, 50)

parameterEmail.Value = email

myCommand.Parameters.Add(parameterEmail)



Dim parameterPassword As SqlParameter = New SqlParameter("@Password", SqlDbType.NVarChar, 50)

parameterPassword.Value = sifre

myCommand.Parameters.Add(parameterPassword)



'Burada ise Direciton farklı olarak Direction ile parametrenin sonuç döndüreceğini

'belirtiyoruz.

Dim parameterFirmaAdi As SqlParameter = New SqlParameter("@FirmaAdi", SqlDbType.NVarChar, 50)

parameterFirmaAdi.Direction = ParameterDirection.Output

myCommand.Parameters.Add(parameterFirmaAdi)





'Bağlantıyı açıp, komutu işleyip en son bağlantımızı kapatıyoruz.

Kod:
            myConnection.Open()

            myCommand.ExecuteNonQuery()

            myConnection.Close()

 

            'Dönen parametre değerini Sonuc değişkenine aktarıyoruz.

            Dim Sonuc As String = CStr(parameterFirmaAdi.Value)

 

            'Gelen Sonuca göre Gerekli verileri döndürüyoruz..

            If Sonuc = "" Then

                Return Nothing

            Else

                Return Sonuc

            End If

 

        End Function



4- Bu fonksiyondan sonuca göre yazacağımız kodla kullanıcıları sistemimize alabilir veya sonuc boş olarak geri dönmüşse system dışında tutabiliriz…



Kod:
        Dim kAdi As String = TextBox1.Text

        Dim sifre As String = TextBox2.Text

 

        If Giris(kAdi, sifre) <> "" Then

            'Giriş başarılı olduğunda yazılacak kod.

        Else

            'Giriş başarısız olduğunda yazılacak kod

        End If
 
Geri
Üst