Asp.net ile Kullanıcı Girişi, Oturum Açma ve Access veritabanından Sorgulama

Bu yazımızda daha önce biraz değindiğimiz Session(Oturum) işlemine değineceğiz ve kullanıcı adı - şifre ile giriş yapan bir kullanıcının veritabanında kayıtlı olup olmadığını Access veritabanından sorgulayacağız.

Asp.net'de yeni bir Web projesi başlatıp bir Web Form ekliyoruz. Genelde ilk eklenen web form'un adı "default.aspx" olacaktır. Daha sonra HTML kısmından bir tablo nesnesini form üzerine sürükleyip bırakıyoruz.

Ardından kullanıcı ve şifre bilgilerini kullanıcıdan almak için iki textbox nesnesini tablomuzun hücreleri üzerine bırakıyoruz. txtKullanici ve txtSifre isimlerini veriyoruz. Bir button nesnesi de ekleyip ID bilgisini btnGiriş, text bilgisini de "Giriş" olarak değiştiriyoruz.

Hata mesajlarını kullanıcıya göstermek için bir Label nesnesini ekleyip, ID değerini lbMesaj yapıp Text özellğini de boşaltıyoruz.

sonuçta formumuzun görüntüsü aşağıdaki gibi olacaktır. 
 



Şimdi Access veritabanında "okul" isimli bir veritabanı oluşturup, tblOgrenci isimli bir tablo oluşturarak aşağıdaki alanları tanımlıyoruz.


 
Ardından birkaç tane kayıt giriniz. Sonra Visual Studio'da Solution Explorer penceresinde projemizin adına sağ tıklayıp yeni App_Data isimli bir klasör ekleyoruz ve oluşturduğumuz "okul.accdb" veritabnını sürükleyip bu klasörün içine bırakıyoruz. 

Ardından formumuz üzerinde Giriş butonuna çift tıklayarak aşağıdaki kodları yazıyoruz.

protected void btnGiris_Click(object sender, EventArgs e)
    {
       //Veritabanından böyle bir kullanıcı ve şifreye sahip kişi var mı?
        //Eğer varsa bu bilgileri Session içine aktaracağız.
        OleDbConnection baglanti;     

        baglanti = new OleDbConnection("Provider=Microsoft.ACE.Oledb.12.0;  Data Source="+Server.MapPath("App_Data\\okul.accdb"));
 
        OleDbCommand komut = new OleDbCommand();

        string sorgu = "select * from tblOgrenci where kullanici=@k and sifre=@s";

        komut = new OleDbCommand(sorgu, baglanti);
        komut.Parameters.AddWithValue("@k", txtKullanici.Text);
        komut.Parameters.AddWithValue("@s", txtSifre.Text);
 
        baglanti.Open();
        OleDbDataReader okunan = komut.ExecuteReader();
        if (okunan.Read())
        {
            Session["kullanici"] = txtKullanici.Text;
            Session["sifre"] = txtSifre.Text;
            Response.Redirect("yonetimpanel.aspx");
        }
        else
        {
            lbMesaj.Text = "Kullanıcı adı veya şifre yanlış";
        
        }
        baglanti.Close();
    }

Ardından projemize bir web form ekleyip ismini yonetimpanel olarak veriyoruz ve "yonetimpanel.aspx" dosyası oluşuyor. Bu dosyanın Page_Load() yani sayfa ilk açıldığında tetiklenen olaya aşağıdaki kodları yazıyoruz. 


 protected void Page_Load(object sender, EventArgs e)
    {
        if (Session["kullanici"] == null)
            Response.Redirect("Default.aspx");
        else
            Response.Write(Session["kullanici"] + " sisteme giriş yaptı");
 
    }
 
yonetimpanel.aspx dosyamıza bir Button nesnesi ekleyip ismini yani ID değerini  "btnSonlandir" veriyoruz. Bu button nesnesinin üzerine çift tıklayıp aşağıdaki kodları yazıyoruz. Böylece kullanıcı bu button'a tıklayınca tüm session nesnelerinin içeriği boşaltılıp kullanıcı giriş sayfası olan "Default.aspx" sayfasına yönlendirilecektir.
 
    protected void btnSonlandir_Click(object sender, EventArgs e)
    {
        Session.RemoveAll();
        Response.Redirect("Default.aspx");
 

Bookmark and Share