Beispiel #1
0
        private bool IsValid(string login, string password)
        {
            MainData.userID = -1;
            // Проверка на наличие такой пары логин/пароль в БД
            using (SqlConnection con = new SqlConnection("Data Source=192.168.1.65,1433;Initial Catalog=Test;User ID=Ragen; Password=utg1df25fu"))
            {
                con.Open();
                using (SqlCommand com = con.CreateCommand())
                {
                    com.CommandText = string.Format("SELECT ID FROM Accounts WHERE Login = '******' AND Password = '******'",
                                                    login, password);
                    com.CommandType = CommandType.Text;
                    SqlDataReader reader = com.ExecuteReader();
                    while (reader.Read())
                    {
                        MainData.userID = reader.GetInt32(0);
                    }
                    reader.Close();
                    com.ExecuteNonQuery();
                }
                con.Close();
            }
            if (MainData.userID == -1)
            {
                MessageBox.Show("Логин или пароль введены неверно");
                Login_TextBox.Focus();
                Password_MTextBox.Text = "";
                return(false);
            }
            // Введен ли логин
            if (Login_TextBox.Text == "")
            {
                MessageBox.Show("Введите логин");
                Login_TextBox.Focus();
                return(false);
            }
            // Введен ли пароль
            if (Password_MTextBox.Text == "")
            {
                MessageBox.Show("Введите пароль");
                Password_MTextBox.Focus();
                return(false);
            }

            return(true);
        }
Beispiel #2
0
        // Проверка валидности вводимых данных
        private bool IsValid(string login, string name, string surname, string email, string password, string passwordConfirm)
        {
            // Регулярки для имени/фамилии, логина, пароля и Email
            string patternName     = @"^[а-яА-ЯёЁa-zA-Z]+$";
            string patternLogin    = @"^[а-яА-ЯёЁa-zA-Z][а-яА-ЯёЁa-zA-Z0-9-_\.]{1,20}$";
            string patternPassword = @"^[a-zA-Z0-9]+$";
            string patternEmail    = @"^(?("")(""[^""]+?""@)|(([0-9a-z]((\.(?!\.))|[-!#\$%&'\*\+/=\?\^`\{\}\|~\w])*)(?<=[0-9a-z])@))" +
                                     @"(?(\[)(\[(\d{1,3}\.){3}\d{1,3}\])|(([0-9a-z][-\w]*[0-9a-z]*\.)+[a-z0-9]{2,17}))$";
            // Переменные для проверки уникальности логина и Email'a
            bool unicLog;
            bool unicEmail;

            // Проверка логина
            Match isMatch = Regex.Match(login, patternLogin, RegexOptions.IgnoreCase);

            if (!isMatch.Success)
            {
                MessageBox.Show("Логин должн содержать цифры и символы руского и/или латинского алфавита и начинаться с буквы.");
                Login_TextBox.Text = "";
                Login_TextBox.Focus();
                return(false);
            }

            // Проверка логина и Email на уникальность
            using (SqlConnection con = new SqlConnection("Data Source=192.168.1.65,1433;Initial Catalog=Test;User ID=Ragen; Password=utg1df25fu"))
            {
                con.Open();
                using (SqlCommand com = con.CreateCommand())
                {
                    com.CommandText = string.Format("SELECT * FROM Accounts WHERE Login = '******'", login);
                    com.CommandType = CommandType.Text;
                    SqlDataReader readerLog = com.ExecuteReader();
                    unicLog = readerLog.HasRows;
                    readerLog.Close();
                    com.CommandText = string.Format("SELECT * FROM Accounts WHERE Email = '{0}'", email);
                    com.CommandType = CommandType.Text;
                    SqlDataReader readerEmail = com.ExecuteReader();
                    unicEmail = readerEmail.HasRows;
                    readerEmail.Close();
                    com.ExecuteNonQuery();
                }
                con.Close();
            }

            // Уникальность логина
            if (unicLog)
            {
                MessageBox.Show("Такой логин уже используется.");
                Login_TextBox.Text = "";
                Login_TextBox.Focus();
                return(false);
            }
            // Уникальность Email
            if (unicEmail)
            {
                MessageBox.Show("Такой Email уже используется.");
                Email_TextBox.Text = "";
                Email_TextBox.Focus();
                return(false);
            }

            // Проверка именни
            isMatch = Regex.Match(name, patternName, RegexOptions.IgnoreCase);
            if (!isMatch.Success)
            {
                MessageBox.Show("Имя должно содержать символы руского и/или латинского алфавита.");
                Name_TextBox.Text = "";
                Name_TextBox.Focus();
                return(false);
            }

            // Проверка фамилии
            isMatch = Regex.Match(surname, patternName, RegexOptions.IgnoreCase);
            if (!isMatch.Success)
            {
                MessageBox.Show("Фамилия должна содержать символы руского и/или латинского алфавита.");
                Surname_TextBox.Text = "";
                Surname_TextBox.Focus();
                return(false);
            }

            // Проверка email
            isMatch = Regex.Match(email, patternEmail, RegexOptions.IgnoreCase);
            if (!isMatch.Success)
            {
                MessageBox.Show("Некорректный Email");
                Email_TextBox.Text = "";
                Email_TextBox.Focus();
                return(false);
            }

            // Проверка пароля
            isMatch = Regex.Match(password, patternPassword, RegexOptions.IgnoreCase);
            if (!isMatch.Success)
            {
                MessageBox.Show("Пароль должен содержать цифры и символы латинского алфавита.");
                Password_MTextBox.Text        = "";
                PasswordConfirm_MTextBox.Text = "";
                Password_MTextBox.Focus();
                return(false);
            }

            // Проверка на соответствия пароля и подтверждения пароля
            if (password != passwordConfirm)
            {
                MessageBox.Show("Поля пароля и подтверждения пароля не совпадают.");
                Password_MTextBox.Text        = "";
                PasswordConfirm_MTextBox.Text = "";
                Password_MTextBox.Focus();
                return(false);
            }

            // Проверка пройдена
            return(true);
        }