示例#1
0
        private void buOK_Click(object sender, EventArgs e)
        {
            if (edNewPassword.Text == edRepeatPassword.Text)
            {
                if (conn.State == ConnectionState.Open)
                {
                    conn.Close();
                }
                conn.Open();

                string password = edNewPassword.Text;

                // генерируем соль
                string saltGen = GenerateIdentifier(30);



                //Генерируем хэш в соответствии с SHA-512 на основе введенного пользователем
                // пароля и сгенерированной соли.
                string hash = SHAHash.ComputeSHAHash(password, saltGen);


                //   fmUser user = (fmUser)this.Owner;

                ((fmUser)this.Owner).usalt = saltGen;
                ((fmUser)this.Owner).uhash = hash;



                //занесение в базу данных

                /*       string UpdateCmd = "update users set salt = @salt, password = @hash where id = @id;";
                 *
                 *     using (NpgsqlCommand command = new NpgsqlCommand(UpdateCmd, conn))
                 *     {
                 *         command.Parameters.AddWithValue("salt", saltGen);
                 *         command.Parameters.AddWithValue("hash", hash);
                 *         command.Parameters.AddWithValue("id", 3432432);
                 *         command.ExecuteNonQuery();
                 *     }*/
            }
            else
            {
                MessageBox.Show("Пароли не совпадают! Попробуйте ввести еще раз", "Предупреждение");
            }
        }
示例#2
0
        private void buLogin_Click(object sender, EventArgs e)
        {
            if ((edPassword.Text == "sveta") && (edUserName.Text == "sveta"))
            {
                // MessageBox.Show("Login Successfull", "Login Information");
                this.Hide();

                fmMain mainWindow = new fmMain();
                mainWindow.ShowDialog();
                this.Close();
            }
            else
            {
                try
                {
                    if (conn.State == ConnectionState.Open)
                    {
                        conn.Close();
                    }
                    conn.Open();

                    // string genres = "SELECT * FROM dic_genres";

                    // получаем соль из базы данных
                    string sql = "Select u.id, u.salt, u.password from users u where u.username= '******'";
                    //    NpgsqlCommand command = new NpgsqlCommand(sql, conn);
                    //    command.Parameters.AddWithValue("userId", 3432432);
                    //  command.Parameters.AddWithValue("username", edUserName.Text);
                    //  string salt = (string)command.ExecuteScalar();

                    // вычисляем хеш введенного пароля
                    // string hash = SHAHash.ComputeSHAHash(edPassword.Text, salt);


                    // Define a query
                    //    string sqlnew = "Select * from users u where u.password=@hash and u.username=@username";


                    //   NpgsqlCommand commandnew = new NpgsqlCommand(sqlnew, conn);
                    ///   commandnew.Parameters.AddWithValue("hash", hash);
                    //   commandnew.Parameters.AddWithValue("username", edUserName.Text);


                    // Execute the query and obtain a result set
                    //   NpgsqlDataReader dr = commandw.ExecuteReader();


                    DataTable dtUser = Fill(sql);

                    if (dtUser.Rows.Count > 0)
                    {
                        int    userId  = Convert.ToInt32(dtUser.Rows[0]["id"]);
                        string salt    = dtUser.Rows[0]["salt"].ToString();
                        string curHash = dtUser.Rows[0]["password"].ToString();


                        // вычисляем хеш введенного пароля
                        string genHash = SHAHash.ComputeSHAHash(edPassword.Text, salt);

                        //MessageBox.Show(genHash);

                        //   edUserName.Text = genHash;

                        if (genHash == curHash)
                        {
                            // MessageBox.Show("Login Successfull", "Login Information");
                            this.Hide();

                            fmMain mw = new fmMain(userId);

                            CurrentUser.setUserId(userId);

                            mw.ShowDialog();
                            this.Close();
                        }
                        else
                        {
                            MessageBox.Show("Неверные пароль и(или) имя пользователя", "Ошибка аутентификации");
                        }
                    }
                    else
                    {
                        MessageBox.Show("Неверные пароль и(или) имя пользователя", "Ошибка атуентификации");
                    }
                }

                catch (Exception msg)
                {
                    // something went wrong, and you wanna know why
                    MessageBox.Show(msg.ToString());
                    throw;
                }

                //  this.Hide();
                //  fmMain mainWindow = new fmMain();
                //  mainWindow.ShowDialog();
                //  this.Close();
            }
        }