private void LoginButton_Click(object sender, EventArgs e) { string my_login = textBox_login.Text; string hasło = textBox_haslo.Text; bool logged = false; bool using_done = false; String SQL = "SELECT id_użytkownika FROM zaloguj WHERE login='******'"; SqlConnection con = new SqlConnection(GlobalVar.con_str); SqlCommand cmd = new SqlCommand(SQL, con); SqlDataReader r = null; //Kontrola błedu przy nieudanym połączeniu sie z bazą try { con.Open(); } catch { DialogResult _result = MessageBox.Show("Błąd serwera! Nie udało sie nawiązać połączenia z baza danych!", "Ostrzeżenie", MessageBoxButtons.OK, MessageBoxIcon.Stop); if (_result == DialogResult.OK) { Environment.Exit(0); } } r = cmd.ExecuteReader(); while (r.Read()) { id_user = r[0].ToString(); } con.Close(); try { con.Open(); } catch { DialogResult _result = MessageBox.Show("Błąd serwera! Nie udało sie nawiązać połączenia z baza danych!", "Ostrzeżenie", MessageBoxButtons.OK, MessageBoxIcon.Stop); if (_result == DialogResult.OK) { Environment.Exit(0); } } com.Connection = con; com.CommandText = "select z.hasło, u.typ_użytkownika from zaloguj z join użytkownik u on z.id_użytkownika = u.id_użytkownika where z.login='******'"; using (SqlDataReader rdr = com.ExecuteReader()) { while (rdr.Read()) { string db_hash_pass = rdr[0].ToString(); string db_user_type = rdr[1].ToString(); //----------------------------hash hasła---------------------------------------// using (SHA256 sha256Hash = SHA256.Create()) { byte[] bytes = sha256Hash.ComputeHash(Encoding.UTF8.GetBytes(hasło)); StringBuilder builder = new StringBuilder(); for (int i = 0; i < bytes.Length; i++) { builder.Append(bytes[i].ToString("x2")); } string hash_pass = builder.ToString(); //----------------------------------------------------------------------------------------------// //flagi użytkowników do identyfikacji tożsamości bool loginAdm = false; bool loginKon = false; bool loginUsr = false; if (db_user_type.Contains("Administrator")) { loginAdm = true; } else if (db_user_type.Contains("Konserwator")) { loginKon = true; } else { loginUsr = true; } //sprawdzenie hashy haseł if ((loginAdm == true) && (hash_pass == db_hash_pass)) { MessageBox.Show("Zalogowano jako Administrator", "System.Info"); admin_window okno_admin = new admin_window(); okno_admin.Show(); logged = true; break; } else if ((loginAdm == true) && (hash_pass != db_hash_pass)) { MessageBox.Show("Podano błędne hasło dla użytkownika admin", "Ostrzeżenie", MessageBoxButtons.OK, MessageBoxIcon.Stop); } else if ((loginKon == true) && (hash_pass == db_hash_pass)) { MessageBox.Show("Zalogowano jako Konserwator", "System.Info"); konserwator_window okno_kons = new konserwator_window(); okno_kons.Show(); logged = true; break; } else if ((loginKon == true) && (hash_pass != db_hash_pass)) { MessageBox.Show("Podano błędne hasło lub login dla użytkownika", "Ostrzeżenie", MessageBoxButtons.OK, MessageBoxIcon.Stop); } else if ((loginUsr == true) && (hash_pass == db_hash_pass)) { MessageBox.Show("Zalogowano jako Użytkownik", "System.Info"); user_window okno_user = new user_window(); okno_user.Show(); logged = true; break; } else if ((loginUsr == true) && (hash_pass != db_hash_pass)) { MessageBox.Show("Podano błędne hasło lub login dla użytkownika", "Ostrzeżenie", MessageBoxButtons.OK, MessageBoxIcon.Stop); } else { MessageBox.Show("Podano błędne dane logowania", "Ostrzeżenie", MessageBoxButtons.OK, MessageBoxIcon.Stop); } using_done = true; } } } // com.CommandText = "SELECT id_użytkownika FROM zaloguj WHERE login='******'"; //id_user = rdr[0].ToString(); con.Close(); //Podniesienie flagi logowania powoduje wyłączenie okna login_vindow; pusty pola: login, hasło lub niewykonanie // się klauzuli using da błąd o złych danych if (logged == true) { Visible = true; //do prób //ogólnie powinno być false } else if ((String.IsNullOrEmpty(my_login)) || (String.IsNullOrEmpty(hasło)) && (using_done == false)) { MessageBox.Show("Podano błędne dane logowania", "Ostrzeżenie", MessageBoxButtons.OK, MessageBoxIcon.Stop); } // }
private void LoginButton_Click(object sender, EventArgs e) { my_login = textBox_login.Text; hasło = textBox_haslo.Text; con.Open(); com.Connection = con; com.CommandText = "select hasło from zaloguj where login='******'"; using (SqlDataReader rdr = com.ExecuteReader()) { while (rdr.Read()) { string db_hash_pass = dr[0].ToString(); //----------------------------hash hasła---------------------------------------// using (SHA256 sha256Hash = SHA256.Create()) { byte[] bytes = sha256Hash.ComputeHash(Encoding.UTF8.GetBytes(hasło)); StringBuilder builder = new StringBuilder(); for (int i = 0; i < bytes.Length; i++) { builder.Append(bytes[i].ToString("x2")); } string hash_pass = builder.ToString(); //----------------------------------------------------------------------------------------------// if ((my_login == "admin") && (hash_pass == db_hash_pass)) { MessageBox.Show("zalogowany admin"); admin_window okno_admin = new admin_window(); okno_admin.Show(); } } } con.Close(); /* String loginOkno; String loginPlik; String line; int counter = 0; loginOkno = textBox_login.Text; System.IO.StreamReader file = new System.IO.StreamReader(pathLoginy); while ((line = file.ReadLine()) != null) { System.Console.WriteLine(line); loginPlik = line; if ((loginOkno == loginPlik) && (loginPlik == "admin")) { loginAdmin = true; break; } else if ((loginOkno == loginPlik) && (loginPlik == "konserwator")) { loginKons = true; break; } else if (loginOkno == loginPlik) { login = true; break; } counter++; } counterLogin = counter; file.Close(); counter = 0; String PasswordOkno; String PasswordPlik; String linehaslo; PasswordOkno = textBox_haslo.Text.ToString(); System.IO.StreamReader filehasla = new System.IO.StreamReader(pathhasla); while ((linehaslo = filehasla.ReadLine()) != null) { if (counter == counterLogin) { System.Console.WriteLine(linehaslo); PasswordPlik = linehaslo; if ((PasswordOkno == PasswordPlik)) { password = true; } } counter++; } filehasla.Close(); if ((loginAdmin == true) && (password == true)) { MessageBox.Show("zalogowany admin"); admin_window okno_admin = new admin_window(); okno_admin.Show(); login = false; loginAdmin = false; loginKons = false; password = false; } else if ((loginKons == true) && (password == true)) { //trzeba by wychwycić jaki konserwator do pozniejszych zadan//chyba ze przyjmiemy ze jest jeden MessageBox.Show("zalogowany konserwator"); konserwator_window okno_kons = new konserwator_window(); okno_kons.Show(); login = false; loginAdmin = false; loginKons = false; password = false; } else if ((login == true) && (password == true)) { MessageBox.Show("zalogowany"); user_window okno_user = new user_window(); okno_user.Show(); login = false; loginAdmin = false; loginKons = false; password = false; //zwykły użytkownik //dodać błędne hasło lub login } else { MessageBox.Show("błędne dane, proszę wpisać ponownie"); login = false; loginAdmin = false; loginKons = false; password = false; } */ }