Пример #1
0
        /// <summary>
        /// Mit dieser Funktion wird überprüft ob das übergeben Passwort (input) mit dem aus der Datenbank übereinstimmt.
        /// </summary>
        /// <param name="name"></param>
        /// <param name="input"></param>
        /// <returns></returns>
        public static bool CheckPassword(string name, string input)
        {
            //Variable um Passwort aus der Datenbank zwischenzuspeichern
            string password = "";

            //Hier wird eine MySql-Verbindung aufgebaut.
            using (MySqlConnection connection = new MySqlConnection(Settings.Server_Settings.GetConnectionString())) {
                //Hier wird die Verbindung geöffnet
                connection.Open();

                //Wir erstellen einen Befehl, der später ausgeführt werden soll
                MySqlCommand command = connection.CreateCommand();

                //Wir füllen den Befehl mit einem Querystring mit der Anweisung SELECT
                command.CommandText = "SELECT password FROM users WHERE name=@name LIMIT 1";

                //Wir fügen unsere gewünschten Variablen hinzu, welche in der Tabelle ausgelesen werden sollen
                command.Parameters.AddWithValue("@name", name);

                //Es wird ein Reader ausgeführt, der die Zeilen aus der Tabelle ausliest
                using (MySqlDataReader reader = command.ExecuteReader()) {
                    //Reader hat Zeilen gefunden
                    if (reader.HasRows)
                    {
                        //Reader soll lesen
                        reader.Read();

                        //Password wird ausgelesen und im oben angelegten string gespeichert
                        password = reader.GetString("password");
                    }
                }

                //Verbindung wird geschlossen
                connection.Close();
            }

            //Verify überprüft ob das verschlüsselte Passwort (password) mit dem unverschlüsselten Input (input) übereinstimmt
            if (PasswordDerivation.Verify(password, input))
            {
                //Return true, wenn das Passwort stimmt
                return(true);
            }

            //Return false, wenn das Passwort nicht übereinstimmt
            return(false);
        }
Пример #2
0
        public void CMD_UserLogin(Client player, string password)
        {
            UserAccount account        = _userRepository.GetAccount(player.name);
            string      saltedPassword = account.Hash;

            bool isPasswordCorrect = PasswordDerivation.Verify(saltedPassword, password);

            if (isPasswordCorrect)
            {
                API.setEntityData(player, "FlyingHours", account.FlyingScore);
                API.setEntityData(player, "UserRank", account.Rank);
                API.setEntityData(player, "AdminRank", account.Adminrank);
                API.setEntityData(player, "Logged in", true);
                API.sendChatMessageToPlayer(player, "You're now logged in!");
            }
            else
            {
                API.sendChatMessageToPlayer(player, "Incorrect password entered!");
            }
        }