using System;
using System.IO;
using System.Web.UI; //web textbox larına ulaşabilmemiz için gereken class
using System.Security.Cryptography; //md5 için gerekli class
using System.Text; //UTF fonksiyonu için gerekli class
using System.Data; //veritabanı işlemleri için gerekli class
using System.Data.SqlClient; //veritabanı işlemleri için gerekli class
using System.Configuration; //web.config dosyamızdan veri okuyabilmek amaçlı class
Â
namespace loginForm
{
           public class Login : System.Web.UI.Page
           {
                       //kodlamada kullanacağımız nesnelerimizi tanımlıyoruz.
                       protected System.Web.UI.WebControls.TextBox emailAdr;
                       protected System.Web.UI.WebControls.TextBox parola;
Â
                       protected System.Web.UI.WebControls.Panel pnlLogin;
                       protected System.Web.UI.WebControls.Panel loginStatus;
Â
                       protected System.Web.UI.WebControls.Label lblInfo;
                      Â
                       public void Page_Load(object sender, System.EventArgs e)
                       {
                                    //sayfa yüklendiğinde panellerimizin görüntülenme ayarlarını yapıyoruz.
                      //form ekranı ilk olarak görüntülenecek.
                                    pnlLogin.Visible = true;
                                    loginStatus.Visible = false;
                                    lblInfo.Text = "";
                       }
Â
                       //Formu Gönder butonuna tıklandığında çalışan fonksiyonumuz
                       protected void doLogin(object sender, System.EventArgs e)
                       {
                                    //girilen verileri alıyoruz.
                                    string uid = emailAdr.Text;
                                    string pwd = parola.Text;
Â
                                    //işlem sonucu göstermek amaçlı ikinci panelimizi görünür kılıyoruz.
                                    pnlLogin.Visible = false;
                                    loginStatus.Visible = true;
Â
                                    //parolanız şifrelenmesi için fonksiyona gönderiyoruz.
                                    //şifrelenmiş verimiz byte haline geleceği için değişkenimizi
                                    //byte olarak tanımlıyoruz.
                                    byte[] encyrptedPwd = md5Password(pwd);
Â
                                    //veritabanına ilgili verileri göndererek kontrolümüzü yaparız.
                                    SqlConnection conn = new SqlConnection(ConfigurationSettings.AppSettings["strConn"]);                          Â
                                    conn.Open();
                                    SqlCommand sc = new SqlCommand ();
                                    sc.Connection = conn;
                                    sc.CommandType = CommandType.StoredProcedure;
                                    sc.CommandText = "sp_sel_loginCheck";
                                                                       Â
                                    sc.Parameters.Add("@uemail", SqlDbType.VarChar, 255, "uemail");
                                    sc.Parameters["@uemail"].Value = uid;
                                    sc.Parameters.Add("@upwd", SqlDbType.Binary, 16, "upwd");
                                    sc.Parameters["@upwd"].Value = encyrptedPwd;
Â
                                    try
                                    {
                                                //Elimizdeki verilerle çalıştırdığımız SP'mizden geri bir kolon, bir satır döndüğü
                                                //için SqlCommand nesnesinin ExecuteScalar() metodunu kullanıyoruz.
                                                //user_id şuanda bizim işimize yaramıyor, fakat nasıl çekildiğini göstermek amacı ile
                                                //bu satırı da kodumuza ekledim.
                                                string user_id = sc.ExecuteScalar().ToString();
                                                //Email ve parola doğru ise bilgilendiriyoruz.
                                                lblInfo.Text = "Hoşgeldiniz ";
                                    }
                                    catch
                                    {
                                                //Email ve parola yanlışsa tekrar girmesini istiyoruz.
                                                lblInfo.Text = "Yanlış E-posta Adresi/Parola. Lütfen bilgilerinizi kontrol edip tekrar deneyiniz.";
                                    }
                                    conn.Close();
                       }
Â
                       byte[] md5Password(string pass)
                       {
                                    //md5 şifrelenmesi için verimizin byte haline gelmesi gerekli.
                                    //veri 8-bit şeklinde dönüştürülmesi için ilk önce UTF fonksiyonuna gönderiliyor.
                                    UTF8Encoding encoder = new UTF8Encoding();
                                    //md5 şifrelemesi için nesnemizi oluşturuyoruz.
                                    MD5 md5 = new MD5CryptoServiceProvider();
                                    //verimizi md5 ile çalıştırıyoruz.
                                    //dikkat ederseniz UTF fonksiyonundan dönen değeri GetBytes ile alabildik.
                                    byte[] donenDeger = md5.ComputeHash(encoder.GetBytes(pass));
                                    //şifrelenmiş değerimizi geri gönderiyoruz.
                                    return donenDeger;
                       }
                      Â
           }
}
|
Yorumlar
Yorum Yok
Yorumunuzu Ekleyin
Yorum eklemek için giris yapmalısınız.