예제 #1
0
        /* Проверка на галочку "SaveMe" */
        private void LoadLogin()
        {
            //тут проверяем в конфиге, есть ли пометка, что "запомнить меня"
            string saveMe = ConfigurationManager.AppSettings.Get("saveMe");

            Console.WriteLine(saveMe);
            if (saveMe.Equals("true"))
            {
                LoadWithSaveMe = true;
            }
            else
            {
                LoadWithSaveMe = false;
            }

            if (LoadWithSaveMe)
            {
                //здесь запуск проги без окна входа
                if (ReadFromFile())
                {
                    string result = lfController.GetUserDataFromDB(fileTxt[0]);

                    if (result.Contains("good"))
                    {
                        if (sp.VerifyToken(int.Parse(fileTxt[1]), um.Token1, um.Token2, um.Login.Length) && sp.VerifyMac(fileTxt[2]) && sp.VerifyMac(um.Mac)) // проверяем МАС этой машины с МАС из файла и сразу МАС этой машини с последним занесенным МАС в БД
                        {
                            SignInWithSaveMe = true;
                            MainFormView mf = new MainFormView(um, this);
                            mf.Show();
                            firstLoad = false;
                        }
                        else
                        {
                            UpdateConfig("false");

                            File.Delete(path);      //удаляем файл
                            LoadWithSaveMe = false;
                            this.Visible   = true;
                        }
                    }
                    else if (result.Contains("error: 40"))
                    {
                        MessageBox.Show("Не удалось установить соединение с сервером. Попробуйте позже.", "Ошибка");
                        UpdateConfig("false");

                        File.Delete(path);      //удаляем файл
                        LoadWithSaveMe = false;
                        this.Visible   = true;
                    }
                    else if (result.Contains("fail"))
                    {
                        MessageBox.Show("Имя пользователя или пароль введены неверно.", "Ошибка");
                        UpdateConfig("false");

                        File.Delete(path);      //удаляем файл
                        LoadWithSaveMe = false;
                        this.Visible   = true;
                    }
                }
                else
                {
                    UpdateConfig("false");

                    File.Delete(path);      //удаляем файл
                    LoadWithSaveMe = false;
                    this.Visible   = true;
                }
            }
        }
예제 #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;
            }
        }