Example #1
0
        /* Обновляем ответ на вопрос */
        private void btn_Next_Click(object sender, EventArgs e)
        {
            switch (phaseChangingAnswer)
            {
            case 1:
                if (!tb_Answer.Text.Equals(""))
                {
                    if (controlSecuredPasswordController.VerifyHashedPassword(um.Answer, tb_Answer.Text))       //проверяем текущий ответ
                    {
                        lb_AnswerTxt.Text     = message1;
                        phaseChangingAnswer   = 2;
                        tb_Answer.Text        = "";
                        label4.Visible        = false;
                        lb_AnswerTxt.Location = label4.Location;
                    }
                    else
                    {
                        MessageBox.Show("Вы ввели неверный ответ!", "Ошибка");
                    }
                }
                else
                {
                    MessageBox.Show("Введите текущий ответ для продолжения.", "Ошибка");
                }
                break;

            case 2:
                if (!tb_Answer.Text.Equals(""))         //обновляем ответ
                {
                    string newAnswer = controlSecuredPasswordController.HashPassword(tb_Answer.Text);

                    if (controlLoginFormController.UpdateAnswer(um.UserId, newAnswer))          //обновляем
                    {
                        MessageBox.Show("Ответ был успешно обновлен!", "Успех");
                    }

                    controlControlPanelView.QuestionChanged(newAnswer);
                    this.Close();
                }
                else
                {
                    MessageBox.Show("Введите новый ответ!", "Ошибка");
                }
                break;
            }
        }
Example #2
0
        /* Основная логика по восстановлению пароля */
        private void Next()
        {
            switch (phase)
            {
            case 1:
                if (!tb_Input1.Text.Equals(""))         //если поле не пустое
                {
                    string result = lfController.GetUserDataFromDB(tb_Input1.Text);
                    if (result.Contains("good"))          //получаем данные пользователя по логину
                    {
                        phase             = 2;
                        tb_Input1.Visible = false;
                        tb_Input2.Visible = true;
                        label2.Visible    = true;
                        label1.Text       = message2;
                        label2.Text       = um.SecretQuestion;
                        tb_Input2.Focus();
                    }
                    else if (result.Contains("error: 40 "))
                    {
                        MessageBox.Show("Не удалось установить соединение с сервером. Попробуйте позже.", "Ошибка");
                    }
                    else if (result.Contains("fail"))
                    {
                        MessageBox.Show("Имя пользователя или пароль введены неверно.", "Ошибка");
                    }
                }
                else
                {
                    MessageBox.Show("Введите логин пользователя.", "Ошибка");
                }
                break;

            case 2:
                if (!tb_Input2.Text.Equals(""))                                    //если поле не пустое
                {
                    if (spControl.VerifyHashedPassword(um.Answer, tb_Input2.Text)) //сравнивае ответ с хранимым овтетом
                    {
                        label2.Visible    = false;
                        tb_Input1.Visible = true;
                        phase             = 3;
                        tb_Input1.Text    = "";
                        tb_Input2.Text    = "";
                        tb_Input1.Focus();
                        label1.Text            = message3;
                        tb_Input1.PasswordChar = '*';
                        tb_Input2.PasswordChar = '*';
                    }
                    else
                    {
                        MessageBox.Show("Вы дали неверный ответ на вопрос.", "Ошибка");
                    }
                }
                break;

            case 3:
                if (tb_Input1.Text.Equals(""))       //если 1е поле пароля не пустое
                {
                    MessageBox.Show("Введите пароль!", "Ошибка");
                }
                else
                {
                    if (tb_Input2.Text.Equals(""))       //если 2е поле пароля не пустое
                    {
                        MessageBox.Show("Введите пароль повторно!", "Ошибка");
                    }
                    else
                    if (tb_Input1.Text.Equals(tb_Input2.Text))                                                  //если пароли в полях совпадают
                    {
                        if (lfController.UpdateUserPassword(um.UserId, spControl.HashPassword(tb_Input1.Text))) //обновляем пароль
                        {
                            MessageBox.Show("Пароль был успешно изменен!", "Успех");
                            ChangedSuccessfully = true;
                        }
                        else
                        {
                            MessageBox.Show("Произошла ошибка при сохранении. Попробуйте ещё раз.", "Ошибка");
                        }

                        if (ChangedSuccessfully)            //если обновили успешно, возвращаемся на форму входа
                        {
                            this.Close();
                        }
                    }
                    else
                    {
                        MessageBox.Show("Пароли не совпадают!", "Ошибка");
                    }
                }
                break;
            }
        }
Example #3
0
        /* Главная логика */
        private void btn_Register_Click(object sender, EventArgs e)
        {
            if (!tb_Name.Text.Equals("") && !tb_Login.Text.Equals("") && !tb_Pass.Text.Equals("") && !tb_PassRepeat.Text.Equals("") && !tb_Question.Text.Equals("") && !tb_Answer.Text.Equals("")) //не пустые ли поля
            {
                if (tb_Pass.Text.Equals(tb_PassRepeat.Text))                                                                                                                                       //совпадают ли введенные пароли
                {
                    bool userIsExist = false;

                    lfController.GetAllUsers();     //получаем список всех пользователей

                    for (int i = 0; i < um.Count; i++)
                    {
                        if (tb_Login.Text.Equals(um[i].Login))
                        {
                            userIsExist = true;
                        }
                    }

                    if (!userIsExist)
                    {
                        int userRole = 2;

                        if (radioButton1.Checked)       //админ
                        {
                            userRole = 0;
                        }
                        else if (radioButton2.Checked)      //босс
                        {
                            userRole = 1;
                        }
                        else if (radioButton3.Checked)      //смертный
                        {
                            userRole = 2;
                        }

                        Random rn = new Random();

                        if (lfController.RegisterNewUser(tb_Login.Text, spController.HashPassword(tb_Pass.Text), tb_Name.Text, rn.Next(100000, 999999), rn.Next(100000, 999999), userRole, tb_Question.Text, spController.HashPassword(tb_Answer.Text), spController.GetMac()))        //создаем
                        {
                            MessageBox.Show("Пользователь был успешно создан!", "Успех");
                            this.Close();
                        }
                        else
                        {
                            MessageBox.Show("Во время создания произошла какая-то ошибка. Повторите позже.", "Ошибка");
                        }
                    }
                    else
                    {
                        MessageBox.Show("Пльзователь с таким логином уже существует.", "Ошибка");
                    }
                }
                else
                {
                    MessageBox.Show("Введенные пароли не совпадают", "Ошибка");
                }
            }
            else
            {
                MessageBox.Show("Заполните все поля!", "Ошибка");
            }
        }