private void buttonGenPass_Click(object sender, EventArgs e)
 {
     textBoxPassword.Text = DataHandler.GenerateRandomString(8);
 }
示例#2
0
        private void buttonOK_Click(object sender, EventArgs e)
        {
            string oldpass = textBoxOldPassword.Text;
            string pass1   = textBoxNewPassword1.Text;
            string pass2   = textBoxNewPassword2.Text;

            if (!string.IsNullOrEmpty(pass1) && !string.IsNullOrEmpty(pass2) && !string.IsNullOrEmpty(oldpass))
            {
                if (pass1.Equals(pass2))
                {
                    string        connectionString = "Data Source=ANDREY;Initial Catalog=Signatures;Integrated Security=True";
                    SqlConnection conn             = new SqlConnection(connectionString);
                    try
                    {
                        conn.Open();
                        SqlCommand command = new SqlCommand(
                            @"SELECT    COUNT(*)
                                FROM    [Users]
                                WHERE   [Username] = @user AND 
                                        [Password] = @pass", conn);
                        command.Parameters.AddWithValue("@user", username);
                        command.Parameters.AddWithValue("@pass", DataHandler.hash(oldpass));
                        int count = (int)command.ExecuteScalar();
                        if (count > 0)
                        {
                            command = new SqlCommand(
                                @"UPDATE    [Users]
                                SET     [IsTemporary] = 0,
                                        [Password] = @pass
                                WHERE   [Username] = @user", conn);
                            command.Parameters.AddWithValue("@user", username);
                            command.Parameters.AddWithValue("@pass", DataHandler.hash(pass1));
                            command.ExecuteNonQuery();
                        }
                        else
                        {
                            MessageBox.Show("Неправильный пароль", "Ошибка!", MessageBoxButtons.OK, MessageBoxIcon.Error);
                            return;
                        }
                    }
                    catch (Exception err)
                    {
                        MessageBox.Show("Ошибка: " + err.Message, "Ошибка!", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        return;
                    }
                    finally
                    {
                        MessageBox.Show("Пароль изменен", "Операция выполнена", MessageBoxButtons.OK, MessageBoxIcon.Information);
                        conn.Close();
                    }
                    Close();
                }
                else
                {
                    MessageBox.Show("Пароли не совпадают", "Внимание", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                }
            }
            else
            {
                MessageBox.Show("Заполните все поля", "Внимание", MessageBoxButtons.OK, MessageBoxIcon.Warning);
            }
        }
示例#3
0
        private void buttonLogin_Click(object sender, EventArgs e)
        {
            string connectionString = "Data Source=ANDREY;Initial Catalog=Signatures;Integrated Security=True";
            var    conn             = new SqlConnection(connectionString);

            try
            {
                string password = DataHandler.hash(textBoxPassword.Text);
                conn.Open();
                var command = new SqlCommand(
                    @"SELECT    [Blocked], [IsTemporary], [Signature]
                        FROM    [Users]
                        WHERE   [Username] = @user AND 
                                [Password] = @pass", conn);
                command.Parameters.AddWithValue("@user", textBoxUsername.Text);
                command.Parameters.AddWithValue("@pass", password);
                var reader = command.ExecuteReader();
                if (reader.Read())                //Если есть такой пользователь
                {
                    if (!(bool)reader["Blocked"]) //Если есть доступ
                    {
                        Hide();
                        // you may want to check if value is NULL: reader.IsDBNull(0)
                        if ((bool)reader["IsTemporary"]) //Если пароль одноразовый
                        {
                            MessageBox.Show("Необходимо сменить пароль", "Внимание", MessageBoxButtons.OK, MessageBoxIcon.Information);
                            var newPass = new NewPass(textBoxUsername.Text);
                            if (newPass.ShowDialog() == DialogResult.Abort)
                            {
                                Show();
                                reader.Close();
                                return;
                            }
                        }
                        if (reader["Signature"] is DBNull) //Если подписи нет
                        {
                            MessageBox.Show("Необходимо внести подпись в базу данных", "Внимание", MessageBoxButtons.OK, MessageBoxIcon.Information);
                        }
                        var sign = new Sign(textBoxUsername.Text);
                        if (sign.ShowDialog() == DialogResult.Abort)
                        {
                            Show();
                            reader.Close();
                            return;
                        }
                        if (textBoxUsername.Text.ToLower() == "admin") //Администратор
                        {
                            var admin = new Admin(textBoxUsername.Text);
                            if (admin.ShowDialog() == DialogResult.Abort)
                            {
                                Show();
                                reader.Close();
                                return;
                            }
                        }
                        else //Любой пользователь без прав администратора
                        {
                            var user = new User(textBoxUsername.Text);
                            if (user.ShowDialog() == DialogResult.Abort)
                            {
                                Show();
                                reader.Close();
                                return;
                            }
                        }
                        Show();
                    }
                    else
                    {
                        MessageBox.Show("Доступ запрещен администатором", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    }
                    reader.Close();
                }
                else
                {
                    MessageBox.Show("Неправильное имя пользователя или пароль", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }
            catch (Exception err)
            {
                MessageBox.Show("Ошибка: " + err.Message, "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
            finally
            {
                textBoxPassword.Clear();
                conn.Close();
            }
        }