Kullanıcı giriş yapmak için butona tıkladığında çalışacağı kodu aşağıdaki gibi yazıyoruz.
protected void Giris_Click(object sender, EventArgs e)
{
try // bir hata olmaması için kullanıcının farketmemesi için try catch bloğu içine yazıyoruz.
{
var connStr = ConfigurationManager.ConnectionStrings["myConnectionString"].ConnectionString;
// yukarıda connectionstringi web configden "myConnectionString" adı ile okuyoruz.
// isterseniz normal connection da yazabilirsiniz.
SqlConnection cnn = new SqlConnection(connStr); // Burada connection nesnesini yaratıyoruz.
SqlCommand cmd = new SqlCommand("Select * from Kullanici where Kullaniciad=@ad and Sifre=@sifre", cnn);
// Yukarıda veritabanına bağlanıp sorgulama işlemi için, kullanıcı tablosunda ad ve şifre varmı diye bağlanıp sorguyu yazıyoruz.
cmd.Parameters.AddWithValue("@ad",username.Text);
cmd.Parameters.AddWithValue("@sifre",password.Text);
//sql injection açığına dikkat etmek için sorguya parametre geçiyoruz.
cnn.Open(); // bağlantımızı açıyoruz
SqlDataReader rd = cmd.ExecuteReader(); // sorguyu çalıştırıp gelen değeri sqldatareader nesnesine atıyoruz.
if (rd.HasRows) //rd nesnemizde bir değer varmı diye kontrol ediyoruz.
{
while (rd.Read()) //gelen değeri while ile satır satır okuyoruz.
{
Response.Write("Giriş Yaptınız. " + rd[0].ToString()); //ekrana giriş yaptınız ve kullanıcı adını yazdırıyoruz.
Session["adi"] = username.Text; // session oluşturuyoruz ve oluşturduğumuz "adi" sessiona kullanıcı adını atıyoruz.
Response.Redirect("/Default.aspx"); // giriş yaptığı için sayfayı default aspx sayfasına yönlendiriyoruz.
}
}
else
{
Response.Write("Bilgileri Yanlış Girdiniz.Lütfen Daha sonra Tekrar Deneyin.");
//giriş yapamadığı için hata mesajı ekrana bastırıyoruz.
}
cnn.Close();
}
catch (Exception ex)
{
Response.Write(ex.ToString());
}
}