コード例 #1
0
        //Verwendung von ovverride
        public override void BuildSqlConnection(string userName, string password)
        {
            //Verschlüsseln von Usernamen und Passwort
            userName = AESEncryption.HashStringAes256(userName);
            password = AESEncryption.HashStringAes256(password);

            //SQL Connection String wird von der Abstrakten Klasse ServicesSQL verwendet
            string connectionString = ServicesSQL.connectionString;
            //neue connection
            MySqlConnection connection = new MySqlConnection(connectionString);

            try
            {
                //abfrage ob connection zu ist, wenn ja öffnen
                if (connection.State == ConnectionState.Closed)
                {
                    connection.Open();
                }
                //query für den Login, userdaten dürfen nur einmal vorkommen
                string       loginquery = "SELECT COUNT(1) FROM login WHERE userName=@userName AND Password=@Password";
                MySqlCommand sqlCommand = new MySqlCommand(loginquery, connection);
                sqlCommand.Parameters.AddWithValue("@userName", userName);
                sqlCommand.Parameters.AddWithValue("@Password", password);
                sqlCommand.CommandType = System.Data.CommandType.Text;
                int count = Convert.ToInt32(sqlCommand.ExecuteScalar());
                //Filterung über einen identifizierbarendatensatz über PrimaryKey
                string       pkquery      = "SELECT id FROM login WHERE userName=@userName AND Password=@Password";
                MySqlCommand getPKCommand = new MySqlCommand(pkquery, connection);
                getPKCommand.Parameters.AddWithValue("@userName", userName);
                getPKCommand.Parameters.AddWithValue("@Password", password);
                getPKCommand.CommandType = System.Data.CommandType.Text;
                userid = Convert.ToInt32(getPKCommand.ExecuteScalar());

                if (count == 1)
                {                       //Öffnen des Hauptfensters bei erfolgreichem einlogggen
                    MainView2 mainView = new MainView2();
                    mainView.Show();
                    //im anschluss schließen des Loginscreens
                    var loginScreen = (Application.Current.MainWindow as LoginScreen);
                    if (loginScreen != null)
                    {
                        loginScreen.Close();
                    }
                }
                else
                {                       //error Handling
                    MessageBox.Show("Incorrect Password or incorrect Username, please check!");
                }
            }
            catch (Exception ex)
            {
                //error Handling
                MessageBox.Show(ex.Message);
            }
            finally
            {
                //letzendelich Schließen der Connection
                connection.Close();
            }
        }
コード例 #2
0
        public override void BuildSqlConnection(string username, string password)
        {
            //Verschlüsseln von Usernamen und Passwort
            username = AESEncryption.HashStringAes256(username);
            password = AESEncryption.HashStringAes256(password);

            //SQL Connection String wird von der Abstrakten Klasse ServicesSQL verwendet
            MySqlConnection connection = new MySqlConnection(ServicesSQL.connectionString);

            connection.Open();

            try
            {   //abfrage ob connection zu ist, wenn ja öffnen
                if (connection.State == ConnectionState.Closed)
                {
                    connection.Open();
                }
                //Prüfen ob ein gleicher Datensatz bei der Registrierung schon verhanden ist
                string       checkQuery   = $"SELECT COUNT(1) FROM login WHERE userName='******'";
                MySqlCommand checkCommand = new MySqlCommand(checkQuery, connection);
                checkCommand.Parameters.AddWithValue("@userName", username);
                checkCommand.Parameters.AddWithValue("@Password", password);
                int count = Convert.ToInt32(checkCommand.ExecuteScalar());

                if (count >= 1)
                {   //Falls Nutzername vorhanden ist Handling
                    MessageBox.Show("Dein Nutzername ist schon vergeben, wähle bitte einen anderen und Versuche es erneut.", "Fehler", MessageBoxButton.OK, MessageBoxImage.Information, MessageBoxResult.OK, MessageBoxOptions.DefaultDesktopOnly);
                }
                else if (count == 0)
                {
                    //Query für das Speichern des neuen Nutzers
                    string          mySelectQuery = $@"INSERT INTO `weatherdisplay_db`.`login` (`userName`,`Password`,`city_name`) VALUES ('{username}','{password}','Stuttgart');";
                    MySqlCommand    myCommand     = new MySqlCommand(mySelectQuery, connection);
                    MySqlDataReader Reader        = myCommand.ExecuteReader();
                    MessageBox.Show("Erfolgreich registiert!", "Registriert", MessageBoxButton.OK, MessageBoxImage.Information, MessageBoxResult.OK, MessageBoxOptions.DefaultDesktopOnly);
                }
            }

            catch
            {
                //ErrorHandling
                throw new ArgumentException("Fehler Connection");
            }
            finally
            {   //Schließen der Connection
                connection.Close();
            }
        }