/* Проверка на галочку "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; } } }
/* Основная логика по восстановлению пароля */ 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; } }