Anwendung weiß welche ID dem User gehört?

  • VB.NET

Es gibt 6 Antworten in diesem Thema. Der letzte Beitrag () ist von nikeee13.

    Anwendung weiß welche ID dem User gehört?

    Nabend allerseits,

    Ich komme grade nicht weiter.
    Meine Mysql Abfrage , fragt nach Benutzer und Passwort, ich habe Benutzer und Passwort nur vorübergehend in die my.settings getragen.
    (weil mir nichts besseres einfällt)

    Jetzt fragt meine Anwendung bei jedem Übernehmen nach den Benutzer Daten ob diese auch die Korrekten sind (aus der my.settings) 'Ist vielleicht auch unnötig keine Ahnung
    Alle Benutzer haben eine ID und es gibt mehrere Tabellen, wie schaffe ich es das meine Anwendung anhand des Logins weiß welche ID der User besitzt?.

    Ich würde mich auf eine Antwort freuen!
    THX LG.L
    Es gibt zwei Möglichkeiten:
    1. Der Benutzer wird in der DB selber als Benutzer angelegt, bekommt dort dann noch Anwenderrechte verpasst. Dann wird die Authentifizierung gegen die Datenbank selber gefahren. D.h. der User meldtet sich an der DB selber an. Hier bei wird nichts in den Settings vom Benutzer gespeichert.
    2. Es gibt einen allgemeinen Nutzer für die DB. Dieser wird in den Settings hinterlegt. Bei der Anmeldung eines Nutzers wird dann gegen eine Tabelle der DB geprüft, ob der Nutzer vorhanden und das Kennwort richtig ist. Dann wird die ID des Benutzers ausgelesen und in einer Variablen gespeichert.
    NB. Es ist doch schön, wenn man lesbare Namen vergibt. Siehe auch [VB.NET] Beispiele für guten und schlechten Code (Stil).
    Mir gefällt Möglichkeit 2 besser.
    jetzt bin ich grade am herumprobieren, er findet nun Username & Userpasswort.
    Wie erreiche ich nun die ID?

    Versuche bislang fehlgeschlagen & Suche in der SuFu auch.
    würde mich über eine Antwort freuen
    Thx LG.L
    Bitte das Escapen nicht vergessen..
    Mal schauen, ob deine Datenbank-Lib eine Funktion dafür besitzt, oder hier schauen:
    codeproject.com/Messages/26409…VB-NET-connect-MySQL.aspx
    (nach Möglichkeit das 1. nehmen)

    Außerdem:
    +-Operator für Strings? Unsauberer Codestil. Verwende den (stringonly-)Operator "&"
    Von meinem iPhone gesendet
    Wenn du mir sowas zeigst komme ich extrem durcheinander ^^
    ich benutze den MySQL Connector.Net... soll nicht zu kompliziert sein.
    Alles was es am ende machen soll ist: Login, (ID, username, passwort merken) zumindest solange das Programm Online ist, das habe ich in die my.settings gemacht, ist zwar nichts für andere Augen aber egal.

    Dann soll das Programm in verschiedene Tabellen bestimmte Zahlen eintragen, aber dann auch immer nur für diese bestimmte User ID.
    Auslesen sollte ja eigentlich kein ding sein und schreiben genau so wenig aber mit der ID hab ichs nicht so.
    LG.L
    Das Escapen ist dazu da, damit kein User deine Datenbank missbrauchen kann
    Wenn sich ein User jetzt z.B.

    Quellcode

    1. Administrator' #
    2. oder
    3. Beliebiger_Accountname_der_geklaut_werden_soll' #
    nennt, kann deine Datenbank schon mal ziemlich schnell Leer oder sonst was sein.

    Dann sieht das SQL-Kommando wie folgt aus:

    SQL-Abfrage

    1. SELECT ID FROM TABELLE WHERE Username = 'Beliebiger_Accountname_der_geklaut_werden_soll' #'
    Das # bewirkt, dass der Rest einfach auskommentiert wird.. und somit vom MySQL-Parser ignoriert wird. Gibt also keinen Syntaxerror.
    Mit dem Escapen wandelst du den Namen "Administrator' #" in "Administrator\' #" um. Somit wird das Hochkomma vom Parser nicht mehr als solches angesehen. D.H., dass du der SQL-Injection vorgebeugt hast.
    Von meinem iPhone gesendet