protected void btnLogin_Click(object sender, EventArgs e) { ErrorCodes.Login errorcode = ErrorCodes.Login.NoError; // Versucht anzumelden var account = LogicAccount.LogIn(textNickname.Text, textPassword.Text, ref errorcode); switch (errorcode) { case ErrorCodes.Login.NoError: // Erfolgreich angemeldet //Response.Write("<script>alert('Erfolgreich angemeldet.');</script>"); Account = account; Response.Redirect("Boerse.aspx"); break; case ErrorCodes.Login.NicknameNotFound: // Nickname wurde nicht gefunden Response.Write("<script>alert('Es wurde kein Account unter dem angegeben Nicknamen gefunden.');</script>"); break; case ErrorCodes.Login.WrongPassword: // Falsches Passwort eingegeben Response.Write("<script>alert('Falsches Passwort.');</script>"); break; default: break; } }
/// <summary> /// Macht eine einzelne SQL-Abfrage, um einen Account einzuloggen. Gibt den Account und den Fehlercode zurück. /// </summary> public static AktienSimulatorDataSet.AccountRow CheckLogIn(string nickname, string password, ref ErrorCodes.Login errorcode) { OleDbConnection connection = new OleDbConnection(Properties.Settings.Default.AktienSimulatorConnectionString); connection.Open(); //SQL Injection verhindern string queryString = "SELECT * FROM Account WHERE Nickname = @Nickname"; OleDbCommand command = new OleDbCommand(queryString, connection); command.Parameters.Add("@Nickname", OleDbType.VarChar, 255); command.Parameters["@Nickname"].Value = nickname; //Account suchen var reader = command.ExecuteReader(CommandBehavior.SingleRow); if (reader.HasRows) { reader.Read(); AktienSimulatorDataSet.AccountRow row = DataSet.Account.NewAccountRow(); row.Nickname = reader["Nickname"].ToString(); row.Passwort = reader["Passwort"].ToString(); row.Bilanz = Convert.ToDecimal(reader["Bilanz"]); //Prüft das Passwort if (row.Passwort == password) { // Passwort korrekt errorcode = ErrorCodes.Login.NoError; connection.Close(); return(row); } else { //Passwort inkorrekt errorcode = ErrorCodes.Login.WrongPassword; } } else { //Account wurde nicht gefunden errorcode = ErrorCodes.Login.NicknameNotFound; } connection.Close(); return(null); }
/// <summary> /// Versucht mit dem Account einzuloggen und gibt den Account und den Fehlercode zurück. /// </summary> public static AktienSimulatorDataSet.AccountRow LogIn(string nickname, string password, ref ErrorCodes.Login errorcode) { var account = Database.CheckLogIn(nickname, password, ref errorcode); return(account); }