Example #1
0
        /* Вход в систему */
        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("Введите логин!", "Ошибка");
            }
        }
Example #2
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("Заполните все поля!", "Ошибка");
            }
        }