ASP.net ile Kullanıcı Girişi ve Session İşlemi

Daha önce farklı bir yöntemle LinQ ile Login formu hazırlamıştık, bu makalemizde ASP.net ile klasik yöntemlerle Login(Giriş) formu yapacağız. Bu formda iki metin kutusu ve bir button olacak. Kullanıcı Adı ve Şifre girilip buton'a basılınca btnGiris_Click() olayı tetiklenir. Burada butonumuzun ID özelliğine btnGiris ismini vermiştik. Metin kutularına da txtKullanici ve txtSifre adını verdik. Daha sonra bir Label ekleyip lblMesaj ismini verdik.
 
 
SQL Server'da VTTEKNIKSERVIS isimli bir Database oluşturduk, daha sonra bu database içinde tblPersonel tablosu oluşturduk. tblPersonel tablosu aşağıdaki alanlardan oluşuyor.

personelID (int tipinde Primary Key ve Otomatik Artan),
ADI (Varchar(50) tipinde),
SOYADI  (Varchar(50) tipinde), 
CEPTELEFON  (Varchar(50) tipinde), ,
TELEFON  (Varchar(50) tipinde), ,
KULLANICIADI  (Varchar(50) tipinde), ,
SIFRE  (Varchar(50) tipinde)

alanlarından oluşuyor. Şimdi Microsoft Visual Studio'yu açıp, boş bir Web Sitesi (Empty Web Site) açıyoruz. Bu web sitesine GirisFormu isminde bir WebForm ekliyoruz. En üstteki kısma SQL Server'a bağlantı için gerekli kütüphaneler kullanıldığında hata vermemesi için aşağıdaki iki satırı ilave ediyoruz.

using System.Data;
using System.Data.SqlClient;
 
Web Formunda oluşturduğumuz btnGiris isimli butona tıklandığında btnGiris_Click() olayının tetiklendiğini söylemiştik. Şimdi btnGiris_Click() olayına veritabanı bağlantı ve sorgulama kodlarını yazacağız.  

Aşağıdaki satır ile SQL Server içindeki veritabanına bağlantı yapıyoruz, bizim buradaki bağlantı şeklimiz Windows Authentication(Windows Kimlik Doğrulaması) şeklinde. Integrated Security= True ifadesi ile Windows Authentication kullanacağımızı belirtiyoruz. Böylece Windows'a giriş yapmış olan kullanıcılar SQL Server'ı da yönetebilirler, siz Windows Authentication yerine SQL Server içinde kullanıcı adı ve şifre oluşturmuşsanız bu cümlecik değişecektir.

SqlConnection sınıfından baglanti isimli bir nesne oluşturararak veritabanı bağlantı cümleciğini parametre olarak gönderiyoruz.


SqlConnection baglanti = new SqlConnection("Integrated Security=True;Data Source=.;Initial Catalog=VTTEKNIKSERVIS");

Daha sonra SqlCommand sınıfından sorgu isimli bir nesne oluşturarak içine SQL cümleciğimizi parametre olarak yazıyoruz. Burada tblPersonel tablosundan KULLANICIADI ve SIFRE değerlerini sorguluyoruz. Bu  SQL cümleciğinde geçen @ işareti ile başlayan @user ve @pass ifadeleri değişkenlerdir. Bu değişkenlere daha sonra değerler atayacağız. 

SqlCommand sorgu = new SqlCommand("SELECT * FROM tblPersonel WHERE KULLANICIADI=@user AND SIFRE=@pass", baglanti);

Şimdi @user ve @pass parametrelerine değer atanması işlemini aşağıdaki gibi yapıyoruz.

sorgu.Parameters.Add("@user", SqlDbType.VarChar).Value = txtKullanici.Text;
sorgu.Parameters.Add("@pass", SqlDbType.VarChar).Value = txtSifre.Text;
 
Aşağıda C# kodunun tamamı yer almaktadır. Visual Studio 2013 kullanılmıştır. 


using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
using System.Data.SqlClient;
 
public partial class GirisFormu : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
 
    }
    protected void btnGiris_Click(object sender, EventArgs e)
    {
 
        if (txtKullanici.Text == "" || txtSifre.Text == "")
        {
            lblMesaj.Text = "Kullanıcı adı veya şifrenizi giriniz";
        }
        else
        {
 
 
            SqlConnection baglanti = new SqlConnection("Integrated Security=True;Data Source=.;Initial Catalog=VTTEKNIKSERVIS");
            SqlCommand sorgu = new SqlCommand("SELECT * FROM tblPersonel WHERE KULLANICIADI=@user AND SIFRE=@pass", baglanti);
 
            sorgu.Parameters.Add("@user", SqlDbType.VarChar).Value = txtKullanici.Text;
            sorgu.Parameters.Add("@pass", SqlDbType.VarChar).Value = txtSifre.Text;
 
            baglanti.Open();
 
            SqlDataReader oku = sorgu.ExecuteReader();
            // Eğer bir kayıt varsa
            if (oku.Read())
            {
                // Okunan verileri Session(Oturum) değişkenlerinde saklayalım
                Session["personelID"] = oku["personelID"].ToString();
                Session["AdiSoyadi"] = oku["ADI"].ToString() + " " + oku["SOYADI"].ToString();
                lblMesaj.Text = "Tamam bulundu";
                // Giriş sayfasına yönlendir
                //Response.Redirect("AnaSayfa.aspx");
            }
            else // Kayıt yoksa
            {
                lblMesaj.Text = "Böyle bir kullanıcı bulunamadı !!!";
 
            }
            oku.Close(); // Reader nesnesini kapat
            baglanti.Close(); // Bağlantı nesnesini kapat
        }
 
 
 
    }
 
}

Mutlu kodlamalar,
Oğuzhan TAŞ, 2015
Bookmark and Share