Bu yazımızda ASP.NET ile Access veritabanı bağlantısı kullanarak Kullanıcı Adı ve Şifre kontrolü yaparak üye giriş işlemlerini ve Session Kullanımını göreceğiz. Oluşturacağımız Login Form ile Kullanıcı Adı ve Şifrenin doğru girilmesi durumunda oluşturacağımız Web Forma bağlanacağız.
Kullanıcı adı ve şifre doğrulama işlemini Büyük/Küçük harf duyarlılığını göz önüne alarak yapacağız.
Örneğimizi Visual Studio 2015 kullanarak en ince ayrıntısına kadar adım adım gerçekleştirmeye çalışacağım.
Adım 1: File – New – Web Site tıklayın.
Adım 2: Gelen ekranda ASP.NET Empty Web Site seçerek Projenize bir isim verin ve OK Butonuna tıklayın.
Bu işlem sonucu Projemiz Solution Explorer penceresinde görüntülenecektir.
Adım 3: Şimdi bu pencerede Proje üzerinde farenin sağ tuşuna tıklayın. Add – Web Form‘ a tıklayın.
Karşınıza aşağıdaki gibi bir pencere gelecektir. Burada login ismini vererek OK butonuna tıklayın.
Adım 4: karşımıza login.aspx sayfamız gelecektir. Burada Split modu seçerek tasarım ve kod ekranını birlikte görüntüleyebilirsiniz. Alttaki ekranda body yazan çerçeveye tıklayın. Formumuzu burada oluşturacağız. Form elemanlarını bir tablo içine yerleştireceğiz.
Adım 5: Tablo oluşturmak için Table – Insert Table tıklayın.
Karşınıza gelen pencerede Rows ( Satır) için “4“, Columns (Sütun) için “2” değerini girerek OK basın.
Adım 6: Form elemanlarını aşağıdaki gibi yerleştirin.
Dilerseniz aşağıda vermiş olduğum kodları div etiketleri içine kopyalayarak vakit kaybetmeden formu oluşturabilirsiniz.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | <table class="auto-style1"> <tr> <td class="auto-style5">Kullanıcı Adı</td> <td class="auto-style4"> <asp:TextBox ID="txtAd" runat="server"></asp:TextBox> </td> </tr> <tr> <td class="auto-style5">Şifre</td> <td class="auto-style4"> <asp:TextBox ID="txtSifre" runat="server"></asp:TextBox> </td> </tr> <tr> <td class="auto-style5"> </td> <td class="auto-style4"> <asp:Button ID="btnGiris" runat="server" OnClick="btnGiris_Click" Text="Giriş" Width="125px" style="margin-left: 0px" /> </td> </tr> <tr> <td class="auto-style2" colspan="2"> <asp:Label ID="lblDurum" runat="server" Text="Label"></asp:Label> </td> </tr> </table> |
Adım 7: Bu adımda veritabanı dosyamızı projemize dahil edeceğiz. Öncelikle bir klasör oluşturacağız. Bunun için Solution Explorer penceresinde Add – Add ASP.NET Folder – App_Data tıklayın.
Bu işlem sonucunda App_Data klasörünün oluştuğunu göreceksiniz.
Adım 8: Bu adımda access dosyamızı oluşturarak App_Data klasörüne kopyalayacağız. giris.accdb isimli dosyamız aşağıdaki gibidir.
Tabloları oluşturduktan App_Data klasörünün içine kopyalayın. Bu klasör varsayılan olarak Belgelerim içinde altta gördüğünüz resim içindeki yolda olacaktır.
Adım 9: Bu işlem sonucunda App_Data üzerinde sağ tıklayarak Refresh Folder tıklayın. giris.accdb dosyası nurada görüntülenecektir.
Çift tıkladıktan sonra dosya Server Explorer penceresinde görüntülenecektir.
Adım 10: Bu adımda Session işlemini gerçekleştireceğimiz boş bir Web Form oluşturacağız. 3. adımdaki işlemi tekrarlayın. Formun ismi default olarak kalabilir.
Adım 11: Artık C# kodlarımıza geçiyoruz. “login.aspx” dosyasında Giriş butonu üzerinde çift tıklayarak aşağıdaki kodları yazın.
Aşağıdaki kütüphaneyi projeye dahil etmeyi unutmayın.
1 2 3 | using System.Data.OleDb; |
Button için kodlar:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | protected void btnGiris_Click(object sender, EventArgs e) { string kad, ksifre; kad = txtAd.Text; ksifre = txtSifre.Text; OleDbConnection baglanti = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + Server.MapPath("App_Data\\giris.accdb")); OleDbCommand komut = new OleDbCommand(); string sorgu = "Select* from kullanici where StrComp(k_ad,@ad,0)=0 and StrComp(k_sifre,@sifre, 0) = 0"; komut = new OleDbCommand(sorgu, baglanti); komut.Parameters.AddWithValue("@ad", kad); komut.Parameters.AddWithValue("@sifre", ksifre); baglanti.Open(); OleDbDataReader oku = komut.ExecuteReader(); if (oku.Read()) { Session.Add("kullanici", kad); Response.Redirect("default.aspx"); } else { lblDurum.Text = "Giriş Başarısız"; } baglanti.Close(); } |
Adım 12: Şimdi default.aspx için gerekli kodları yazacağız. Bunun için default.aspx sayfasını açarak boş bir alanda çift tıklayın ve Page_Load olayının açılmasını sağlayın.
1 2 3 4 5 6 7 8 9 10 11 12 13 | protected void Page_Load(object sender, EventArgs e) { if (Session["kullanici"] != null) { Response.Write("Hoşgeldin " + Session["kullanici"]); } else { Response.Redirect("login.aspx"); } } |
Adım 13: İşlem tamam! Projemizi çalıştırarak test edelim.
Şifre kısmının Büyük/Küçük harfe duyarlı olmasını sağlamıştık. Şimdi “cansever” yerine “Cansever” olarak deniyoruz.
Merhaba
Login olup default sayfasına da gridview ile data ceksek . Ve Sadece Uyenin bilgilerini çeksek
Sorguda Session = Kullanıcı adı verilerini nasıl sorgularız , nasıl sorgu yazmalıyız
tesekkur ederiz
Hocam ben kad girmeden şifre yazıp şifreyede herkese özel 10 basamaklı kart numarası verdim accesde veritabanını oluşturdum hoşgeldin yazıp kimin olduğunu bana vermesini istiyorum acaba o kısmı nasıl yapabilirim.
Hocam merhaba kodları giriyorum giriş yap kısmına bastıktan sonra otomatik olarak login sayfasına geri atıyor kullanıcı adı veya şifre yanlış doğru olsa bile nasıl düzelteceğim.
Sizin örneğinizi indirdim aynı şekilde o örnekte de aynısı oldu.
baglanti.Open();
bu kısımda hata veriyor ne yapmam lazım
Veritabanı adını konumunu ve baglanti cumlesini tekrar kontrol edin.
login.aspx’e gir butonun olduğu kodda OnClick=”btnGiris_Click” olacaktır bu kodu silersen düzelir.
Ahmet Hocam Asp.net te giriş adında sayfa oluşturup eğer kullanıcı ad Ali ve şifre 123 girilmişse hakkımda aspx sayfasına yönlendirilecek hatalı ise uyarı penceresinde kullanıcı adı veya şifre hatalı yazacaktır. Kaydola tıklanırsa kayıt aspx sayfasına gidilecektir. Bunun kodunu nasıl yazarız hocam. rica etsem bir örnek oluşturabilirmisiniz?
veritabanı bağlantısı olmadan mı yapmak istiyorsunuz?
Merhaba ;
“localhost sizi çok fazla kez yönlendirdi.”
Diye bir hata alıyorum nasıl çözebilirim.
sayfayı farklı tarayıcılarda açmayı denediniz mi, ve ctrl+f5 ile yenileme de bazen işe yarayabiliyor
page_Load kısmında yazan else
{
Response.Redirect(“login.aspx”);
}
kısmından kaynaklıymış hallettim teşekkürler.
Merhaba bu loginform örneğine kullanıcı rolleri ekleyebiliyor muyuz? yani şifre ile girişte yetkilendirme yapmak istiyorum.
bende onu yapmayı arıyordum yapabildinizmi acaba? Yapabildiseniz nereden yaptınız/aldınız?
hocam geçen ay bu konuda çıkış yap butonunu sormuştum ama bi cevap vermemişsiniz, makalelerde de hiç göremedim, giriş yaparken üyelere ölümüne bi sözleşme mi imzalatıyoruz 😀 bi yardımcı olsanız sevinirim
Merhaba. Ssorulan sorulara elimden geldiğince ve fırsat buldukça yanıt vermeye çalışıyoru. Kimi zaman gözden kaçanlar da olabiliyor. Sorduğunuz soruya gelirsek giriş yapılan sayfada Çıkış butonu ekleyerek aşağıdaki kodları yazabilirsiniz.
Session.Abandon();
Session.Clear();
Response.Cookies.Clear();
Response.Redirect(“login.aspx”);
kullanıcıları gruplara ayırma ile ilgili kısma gelirsek aşağıda windows form ile yapılmış bir örneğe ait link veriyorum. bin/debug içindeki veritabanı dosyasını ve login butonundaki kodları inceleyebilirsiniz. Aynı mantığı kullanabilirsiniz.
https://yadi.sk/d/SKmBKOiFqBuNn
cevaplar için teşekkür ederim, session kısmını şimdi hallettim örneği de inceliyorum, hayırlı akşamlar.
1 adet Linkbutton ekleyip üstüne tıklayıp içine girin ve şu kodları ekleyin;
Session.Abandon();// oturumu kapatmak için yazık
Response.Redirect(“anasayfa.aspx”); //oturumu kapatıp anasayfaya yönlendirecektir
peki burda çıkış yap butonu yok?? 😀 nedense konmuyo bu buton, ilk baktığım bi kaç makaleden birisi, diğerlerinde vardır inşallah, bu konuda da yardımcı olur bilgilendirirseniz seviniriz, ve lazım olan bi konu daha, girilen sayfalarda kullanıcı ve ziyaretçi ayrımı yapmam lazım, hatta kullanıcıları tahminen 4 gruba ayırmam lazım, makale için teşekkürler, yardım ederseniz diğer konularda onlar için de sonra teşekkür ederim 😀 😉
merhaba benim bir site tasarımım var bunu o siteye koymak istiyorum nasıl yapabilirim
BİDE SQL İLE YAPMAM LAZIM BUNUN AYNISINI
Kardeşim hangi dosyayı kopyalayıp appdatanın içerisine atacağız
Access dosyasını.
Kardeşim kütüphaneyi eklerken using de hata alıyorum en üste ekliyorum ama using i görmüyor. ” Statement cannot appear outside of a method body/multiline lambda” hatası veriyor.
konu çok acil yardımcı olursanız sevinirim
Buradan web sitesini indirip kontrol edebilirsiniz.