コード例 #1
0
        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);
            }
            //
        }
コード例 #2
0
ファイル: Form1.cs プロジェクト: MarcinBarczyk/BDprojekt
        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;
                }
                */

            }