Пример #1
0
        public static string login_user(string nick, string pass)
        {
            NpgsqlDataReader reader;
            string           salt = "";

            //получаем соль пользователя
            using (NpgsqlCommand com1 = new NpgsqlCommand())
            {
                connection_db_open();
                com1.CommandText = "SELECT salt FROM user_info,user_pass " +
                                   "where user_info.id = user_pass.id and nick = @n";
                com1.Connection = NpgConnection;
                com1.Parameters.AddWithValue("n", nick);
                reader = com1.ExecuteReader();
                if (reader.Read())
                {
                    salt = reader.GetString(0);
                }
                connection_db_close();
            }
            Security.SecurityClass security = new Security.SecurityClass();
            string password = security.password_MD5Hash_open(pass, salt);

            //проверяем пароль

            using (NpgsqlCommand com = new NpgsqlCommand())
            {
                connection_db_open();
                com.CommandText = "SELECT nick FROM user_info,user_pass " +
                                  "where user_info.id = user_pass.id and nick = @n and @p=password";
                com.Connection = NpgConnection;
                com.Parameters.AddWithValue("n", nick);
                com.Parameters.AddWithValue("p", password);

                reader = com.ExecuteReader();
                if (reader.Read())
                {
                    string nickName = reader.GetString(0);
                    connection_db_close();
                    return(nickName);
                }
                else
                {
                    connection_db_close();
                    return("0");
                }
            }
        }
Пример #2
0
        private void Button3_Click(object sender, EventArgs e)
        {
            //   MessageBox.Show(System.Diagnostics.Process.GetCurrentProcess().Threads.Count.ToString());

            if (check_valid_textboxes_tabSingUP())
            {
                Security.SecurityClass securityClass = new Security.SecurityClass();
                string[] hash     = securityClass.password_MD5Hash(textBox4.Text);
                string   salt     = hash[0];
                string   hashPass = hash[1];
                try
                {
                    if (!DataBasePostgres.registration_user(textBox3.Text, hashPass, salt, textBox5.Text, textBox6.Text, int.Parse(textBox7.Text)))
                    {
                        label10.Text    = "Такой пользователь уже существует!";
                        label10.Visible = true;
                    }
                    else
                    {
                        label10.Visible   = true;
                        label10.Text      = "Вы успешно зарегистрированы!";
                        label10.ForeColor = Color.Green;
                        button3.Enabled   = false;
                    }
                }
                catch (Npgsql.PostgresException ex)
                {
                    MessageBox.Show("Ошибка соединения с базой данных");
                    Logs.LogClass logClass = new Logs.LogClass("DB", "Отправка данных регистрации пользвателя. Ошибка postgres: " + ex.Message);
                }
                catch (Npgsql.NpgsqlException ex)
                {
                    MessageBox.Show("Ошибка соединения с базой данных");
                    Logs.LogClass logClass = new Logs.LogClass("DB", "Отправка данных регистрации пользвателя. Ошибка связи: " + ex.Message);
                }
                catch (FormatException)
                {
                    MessageBox.Show("Возраст должен быть числом!");
                }
                catch (Exception ex)
                {
                    MessageBox.Show("Неизвестная ошибка");
                    Logs.LogClass logClass = new Logs.LogClass("System", "Имя объекта вызвавшего ошибку: " + ex.Source + " Ошибка " + ex.Message);
                }
            }
        }