Esempio n. 1
0
        protected void Button_Click(object sender, EventArgs e)
        {
            Dictionary <string, string> db = new Dictionary <string, string>();                                   // Создаем словарик(коллекцию) для занесения ключа и значения
                                                                                                                  // Логина и пароля аккаунта для проверки на подлинность
            SqlCommand getUserInfo = new SqlCommand("SELECT [Username], [Password] FROM [Users]", sqlconnection); // Создаем команду БД
                                                                                                                  // Которая выбирает Логин и пароль с users
            SqlDataReader sqlReader = null;

            try
            {
                sqlReader = getUserInfo.ExecuteReader(); // помещаем в ридер команду sql(которая описана выше) и ридер читает её

                while (sqlReader.Read())
                {
                    db.Add(Convert.ToString(sqlReader["Username"]), Convert.ToString(sqlReader["Password"])); // Записываем ключ и значение(key value)
                }
            }
            catch { }
            finally
            {
                if (sqlReader != null)
                {
                    sqlReader.Close();
                }
            }
            if (!db.Keys.Contains(txtUsername.Text))                      // Проверяем на наличие в словаре username
            {
                ScriptManager.RegisterStartupScript(this, this.GetType(), // Нету, то выдаем messagebox с соотвественной надписью и функцией перехода назад
                                                    "alert", "alert('Incorrect account password or Username');window.location ='Loginpage.aspx';", true);
                return;
            }
            if (txtPassword.Text == db[txtUsername.Text])                                                      // сравниваем принадлежность пароля к логину
            {
                HttpCookie login = new HttpCookie("login", txtUsername.Text);                                  // Это проверка на наличие соотвествующих куки у пользователя, тоесть защита от неавторизированного пользователя
                HttpCookie sign  = new HttpCookie("sign", PasswordToHash.GetPtH(txtUsername.Text + "bytepp")); // Создаем два новых файла куки и присваиваем им значение
                //у логина значение логин, а вот у подписи(sign) значение берется из класса с методом генерации хэша.
                Response.Cookies.Add(login);                                                                   // добавляем куки к логину и подписи
                Response.Cookies.Add(sign);
                Response.Redirect("Profile.aspx");                                                             // перенаправляем юзера на страницу с его информацией
            }
            else
            {
                Response.Write("<script>alert('Incorrect account password or Username');</script>");
            }
            sqlconnection.Close(); // Закрываем соединение с БД
        }
Esempio n. 2
0
        protected void Page_Load(object sender, EventArgs e)
        {
            HttpCookie login = Request.Cookies["login"]; // Возвращаем куки новым переменным логин и подпись
            HttpCookie sign  = Request.Cookies["sign"];

            if (login != null && sign != null)
            {
                if (sign.Value == PasswordToHash.GetPtH(login.Value + "bytepp")) // проверяем на правильность куки используя метод хэширования
                {
                    Label.Text   = login.Value;
                    LabelUn.Text = login.Value;
                }
                else
                {
                    Response.Redirect("Logout.aspx");
                }
            }
            else
            {
                Response.Redirect("Logout.aspx");
            }
            string connectionstring = ConfigurationManager.ConnectionStrings["DB"].ConnectionString; // Подключаем БД

            sqlconnection = new SqlConnection(connectionstring);
            sqlconnection.Open();
            SqlCommand    getInfo = new SqlCommand("Select Email, Firstname, Surname, Gender, Phone, Address FROM [Users] WHERE Username='******'", sqlconnection);
            SqlDataReader dataReader; // Строчкой выше, создаем запрос в БД на информацию по юзернейму

            dataReader = getInfo.ExecuteReader();
            while (dataReader.Read())
            {
                Label1.Text = dataReader[0].ToString(); // Присваиваем лэйблам значения с БД(копипаст ибо label не индексируется)
                Label2.Text = dataReader[1].ToString();
                Label3.Text = dataReader[2].ToString();
                Label4.Text = dataReader[3].ToString();
                Label5.Text = dataReader[4].ToString();
                Label6.Text = dataReader[5].ToString();
            }
            sqlconnection.Close();
        }