/* Вход в систему */ private void btn_SignIn_Click(object sender, EventArgs e) { lb_WrongPassword.Visible = false; if (!tb_Login.Text.Equals("")) //если ввели логин { if (!tb_Password.Text.Equals("")) //если ввели пароль { this.Enabled = false; this.Cursor = Cursors.WaitCursor; bool isLoginAndPassOk = false; string result = lfController.GetUserDataFromDB(tb_Login.Text); //ищем юзера с таким логином в базе, берем все данные. на месте тут сверяем пароли, если ок - логин if (result.Contains("error: 40 ")) { MessageBox.Show("Не удалось установить соединение с сервером. Попробуйте позже.", "Ошибка"); this.Cursor = Cursors.Default; this.Enabled = true; return; } else if (result.Contains("fail")) { MessageBox.Show("Имя пользователя или пароль введены неверно.", "Ошибка"); this.Cursor = Cursors.Default; this.Enabled = true; return; } isLoginAndPassOk = sp.VerifyHashedPassword(um.PassHash, tb_Password.Text); //проверяем пароль на корректность if (isLoginAndPassOk) { //если всё хорошо, то смотрим на галочку if (cb_RememberMe.Checked) { UpdateConfig("true"); string MacAddress = sp.GetMac(); //используем для идентификации пользователя на этом компьютере, чтобы низзя было скопировать файл на другой комп и залогиниться int generatedToken = sp.GenerateToken(um.Token1, um.Token2, um.Login.Length); //заносим мак этой машини в БД if (lfController.UpdateLastMac(um.UserId, sp.GetMac())) { //тут значения с токенов пишем в файл //WriteToFile(generatedToken, um.Login, um.Mac); WriteToFile(generatedToken, um.Login, MacAddress); } else { MessageBox.Show("Не удалось обратиться к серверу. Попробуйте позже.", "Ошибка"); UpdateConfig("false"); File.Delete(path); //удаляем файл } } else { UpdateConfig("false"); File.Delete(path); //удаляем файл } MainFormView mf = new MainFormView(um, this); mf.Show(); this.Visible = false; firstLoad = false; } else { lb_WrongPassword.Visible = true; } this.Cursor = Cursors.Default; this.Enabled = true; } else { MessageBox.Show("Введите пароль!", "Ошибка"); } } else { MessageBox.Show("Введите логин!", "Ошибка"); } }
/* Главная логика */ 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("Заполните все поля!", "Ошибка"); } }