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"); } } }
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); } } }