Login - Userdaten laden

  • VB.NET

Es gibt 16 Antworten in diesem Thema. Der letzte Beitrag () ist von chenjung.

    Login - Userdaten laden

    Ich habe mal bisschen gebastelt, und habe eine Login Maske gebaut, die Daten in eine MySQL Datenbank gespeichert. Nach erfolgreichem Login wird das Backend geladen. Soweit so gut. Wie schafft man es denn nun, z.b. nach dem Login, die Benutzerdaten zu laden? Sprich nach dem Login, sind Textboxten vorbereitet, die dann automisch geladen werden sollen mit den Daten aus der Datenbank (mit Password und Usernamen). Bis jetzt mache ich das noch manuell mit einer ID.

    Habt ihr eine Idee, was ich da machen kann?
    Ihr sucht Webspace für eure Projekte? Dann sagt bescheid - kostenfrei und ohne Werbung!
    nach deinem Login kannst du ja, wenn du es per Request machst, ein Response zurückbekommen. In diesem kannst du die erforderlichen Daten zurückgeben lassen und nach dem Login drauf zugreifen.


    LG Acr0most
    Wenn das Leben wirklich nur aus Nullen und Einsen besteht, dann laufen sicherlich genügen Nullen frei herum. :D
    Signature-Move 8o
    kein Problem mit privaten Konversationen zu Thema XY :thumbup:

    chenjung schrieb:

    wird das Backend geladen
    Ein Backend wird nicht geladen. Ein Backend ist zum Bleistift eine Datenbank, ein CMS - also alles, was der User entweder nicht sehen soll oder zu sehen braucht. Es werden die Daten aus dem Backend geladen und in das Frontend transportiert um sie dort dem User anzeigen zu können.

    chenjung schrieb:

    Sprich nach dem Login, sind Textboxten vorbereitet, die dann automisch geladen werden sollen mit den Daten aus der Datenbank
    Ich gehe jetzt mal davon aus du meinst so etwas wie eine "Login merken" Funktionalität, wie es sie bei diversen Online Portalen (VB-Paradise/Facebook,Google,...) gibt, wo du dich nur einmal anmeldest und dann beim nächsten Besuch im Usernamen Feld der Benutzername/die Emailadresse und im Passwortfeld das Passwort steht?
    Um das zu bewerkstelligen kannst du dir eine eigene Settings Datei in dem Arbeitsorder deiner Anwendung erstellen (.cfg), in der du diverse Profile speicherst.

    Hier aber bitte nur den Usernamen und KEIN Passwort. Sonst machst du dir den "Sicherheitsansatz" mit dem Login zunichte - könntest dir also gleich sparen.

    Je nachdem WIE du den Login gestaltest - also ob du jetzt
    - die Hashwerte aus PW und/oder Usernamen mit dem Hash aus der DB vergleichst oder
    - Klartextvergleiche zwischen Eingabe PW und DB PW machst
    kannst du (im ersten Fall) den Hash des PWs in der CFG speichern. Für den zweiten Fall bitte nur den Usernamen speichern.

    Dann kannst in deiner Loginmaske per Dropdown den User auswählen lassen und auf Absenden drücken. Für den Authentifizierungsprozess dann beim Absenden den Hash an das Backend schicken.Je nachdem ob du das Hashen und vergleichen auf dein Backend ausgelagert hast oder das Hashen (und Signieren) am Client machst , musst halt einen zweiten Authentifizierungsweg implementieren, der auch den Hash gleich nimmt. Wobei der Weg mit dem Hashen am Backend denkbar unsicher ist, da du hier ein riesen großes Loch in deinen Schutzmechanismus schneidest. Denn ein Angreifer - sofern du das PW im Klartext (unsiginiert) überträgst - kann hier ganz leicht das PW abgreifen (und wenn er/sie lustig drauf ist) durch ein falsches ersetzten. Deswegen:
    1.) Auch wenn es ein wenig "unbequemer" ist, dem User nur den Namen auswählen lassen
    2.) PW extra vom User eingeben lassen
    3.) Usernamen und PW einzeln oder zusammen hashen, signieren und das Packet zum Backend zur Überprüfung schicken (selben Hash-Mechanismus - Username und Pw einzeln oder zusammen) am Backend auch implementieren
    4.) "Antwort" am Backend formulieren, optional hashen, das ganze signieren und an den Client schicken
    5.) Am Client das Ergebnis auswerten und weiter verarbeiten (Login erfolgreich oder fehlgeschlagen)

    Ich hoffe ich konnte helfen!
    Lg Radinator
    In general (across programming languages), a pointer is a number that represents a physical location in memory. A nullpointer is (almost always) one that points to 0, and is widely recognized as "not pointing to anything". Since systems have different amounts of supported memory, it doesn't always take the same number of bytes to hold that number, so we call a "native size integer" one that can hold a pointer on any particular system. - Sam Harwell
    Hi,

    ich versteh nicht was genau du da machen willst. Was man machen kann:

    - Benutzer ID wird nach Login in Session gespeichert
    - Es sollte eine Klasse "User" geben, die Getter, Setter, Properties etc.. enthält. Damit hast du schonmal das Objekt mit allen Daten
    - Wenn du dynamische Felder erstellen willst musst du je nach Datenquelle(n) zusätzliche View-Klassen erstellen mit mindestens 2 oder mehr Abstraktionsschichten.

    Wär aber nicht schlecht du würdest uns noch ein konkretes Anwendungsbeispiel beschreiben.

    Link :thumbup:
    Hello World
    @Radinator:
    Jaein, der User soll immer Namen + Passwort eingeben müssen.

    Es soll, wie du eben korriert hast, nach dem Login nur die Userdaten geladen werden, die hinter dem Usernamen/Passwort stehen. Also wie nach einen Login ins Forum. Dort soll dann der Benutzer sehen können, was hinterlegt ist :)

    @Link:
    Also ich erstelle User Accounts und gebe diese Logindaten weiter (nur als Test). Nach dem Login, wie oben beschrieben, soll der User sehen können, was in seinem Profil aus der Dantenbank hinterlegt ist. Hoffe ich konnte es einigermaßen gut erklären ^^
    Ihr sucht Webspace für eure Projekte? Dann sagt bescheid - kostenfrei und ohne Werbung!
    Dann benötigst du zwischen deinen Tabellen (Credentials, Daten, ...) eine Verknüpfung zum Benutzer (Id aus Credentials)

    diese musst du in deinen anderen Tabellen mit Eintragen.

    Bei der Abfrage gibst du die User-Id mit, schränkst dein Select mit where user_id = <id> ein und bekommst die passenden Daten. :)
    Wenn das Leben wirklich nur aus Nullen und Einsen besteht, dann laufen sicherlich genügen Nullen frei herum. :D
    Signature-Move 8o
    kein Problem mit privaten Konversationen zu Thema XY :thumbup:

    chenjung schrieb:

    die hinter dem Usernamen/Passwort stehen. Also wie nach einen Login ins Forum.
    Also willst du die Nutzerdaten (Beiträge, Nachrichten, ...) sozusagen auf dem lokalen Client zwischenspeichern/cachen?
    In general (across programming languages), a pointer is a number that represents a physical location in memory. A nullpointer is (almost always) one that points to 0, and is widely recognized as "not pointing to anything". Since systems have different amounts of supported memory, it doesn't always take the same number of bytes to hold that number, so we call a "native size integer" one that can hold a pointer on any particular system. - Sam Harwell
    Also ich erstelle User Accounts und gebe diese Logindaten weiter (nur als Test). Nach dem Login, wie oben beschrieben, soll der User sehen können, was in seinem Profil aus der Dantenbank hinterlegt ist. Hoffe ich konnte es einigermaßen gut erklären

    Nein das ist scheiße erklärt. An wen gibst du Login-Daten weiter? An Google oder was ...

    Soweit ich das verstehen kann, geht es um so eine Art Profilseite. Der Benutzer registriert sich und hat dann einen Account. Wenn der User sich einloggt, kann er seine Account-Details bearbeiten (Benutzername, Passwort, Vor- und Nachname, vielleicht noch Kontaktanschrift und E-Mail Adresse etc..). Und deine Frage ist, wie du die Daten aus der DB holen sollst um sie in einem Formular auszugeben (und vom Benutzer ändern und anschließend speichern zu lassen). Hab ich richtig geraten? Falls ja gilt mein vorheriger Post für dieses Vorhaben. Die Frage ist dann nur noch, ob das Bearbeitungsformular der Benutzerdaten dynamisch oder statisch erstellt werden soll.

    Die Preisfrage: willst du, dass wenn du in der Datenbank zusätzliche Spalten in der User-Tabelle erstellst, das Formular zur Eingabe dynamisch um die entsprechenden Felder erweitert wird?
    (Falls ja, würde in dem Fall auch eine Art Meta-Tabelle Sinn machen - vermutlich sollen nicht alle Felder vom user editierbar sein, wie beisp. die auto_increment id o.ä.).

    Möglicherweise hab ich auch alles komplett falsch verstanden ... ^^

    Link :thumbup:
    Hello World
    @Radinator:
    Ja, so sieht es aus. Und einige Daten soll der User auch abändern können, aber nur bestimmte.

    @Link:
    Nana :D Der Ton macht die Musik ;)

    Aber ja, wie eine Art Profilseite :)
    Ihr sucht Webspace für eure Projekte? Dann sagt bescheid - kostenfrei und ohne Werbung!
    Ok du Musikliebhaber dann würd' ich jetzt trotzdem gern hören wie du mir die Antworten auf meine Fragen vorsingst. Vielleicht lässt du uns auch an den Gedanken die du dir bisher zu deinem Projekt (hoffentlich) gemacht hast teilhaben und verrätst uns außerdem, wie du vorgehen würdest. Du könntest damit anfangen, uns zu sagen, in welcher Programmiersprache das alles umgesetzt werden soll.

    Link :thumbup:
    Hello World

    Link schrieb:


    - Benutzer ID wird nach Login in Session gespeichert
    - Es sollte eine Klasse "User" geben, die Getter, Setter, Properties etc.. enthält. Damit hast du schonmal das Objekt mit allen Daten


    @chenjung Das hier ist es doch schon. Wo kommst du jetzt nicht weiter?

    Man könnte so vorgehen:
    1. Klasse User mit den Eigenschaften (Username, Passwort, Größe, Alter, was weiß ich)
    2. Beim Login Zugangsdaten prüfen, falls gültig, User (instanziierte Klasse) laden (z.B. in ein Modul, dann kannst du überall darauf zugreifen)
    3. Form mit den Benutzereinstellungen anzeigen und die Controls füllen die der Benutzer bearbeiten kann.
    "Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. Lehre einen Mann zu fischen und du ernährst ihn für sein Leben."

    Wie debugge ich richtig? => Debuggen, Fehler finden und beseitigen
    Wie man VisualStudio nutzt? => VisualStudio richtig nutzen
    @Link:
    *sing* ~ Die Umgebung ist VB2010 (falls das Framework eine Rolle spielt, 3.5) (Selbe Umgebung wie mit Smallpad)

    Im Prinzip möchte ich eine Art Verwaltungssoftware aufbauen (Projektleiter / Abteilungsleiter / das Objekt selbst wo man eingesetzt ist / Nachrichten welche vom ACP auf den jeweiligen Useraccount hinterlegt werden, falls fragen bestehen / Antwort ans ACP vom Useraccount aus) So in etwa habe ich mir das vorgestellt. Die Idee kam recht Spontan als ich vor dem PC hockte (da ich zur Zeit ein Programm auf der Arbeit fertig gestellt habe, kam mir der Gedanke des ACPs in den Kopf.

    Als Datenbank hält eine MySQL Datenbank von All-inkl.com her (rein zum Testen) -Später geht es auf eine Lokale DB.

    @mrMo:
    Ich hänge zur Zeit an der Sache, nach dem Login, also die Übersicht wird geladen, bisher lade ich die Daten noch Manuell via einer zweiten ID welche dann die besagten Daten in die TextBoxen und co lädt.

    Ich weiß, ziemliches wirr warr bei mir *sorry dafür*

    :S
    Ihr sucht Webspace für eure Projekte? Dann sagt bescheid - kostenfrei und ohne Werbung!

    chenjung schrieb:

    via einer zweiten ID



    Was für eine zweite ID? Woher kommt die? Hast du mal deinen DB-Aufbau und ein Stück Code wie du damit arbeitest?


    LG Acr0most
    Wenn das Leben wirklich nur aus Nullen und Einsen besteht, dann laufen sicherlich genügen Nullen frei herum. :D
    Signature-Move 8o
    kein Problem mit privaten Konversationen zu Thema XY :thumbup:
    mach das mal. :thumbup:

    Denn eine zweite ID, vermutlich im Code (?) - nicht in der DB, benötigst du für dein Vorhaben nicht.
    Schicke bestenfalls den Login-Part und wie du die Daten holst, dann kann man dir bestimmt weiter helfen.

    LG Acr0most
    Wenn das Leben wirklich nur aus Nullen und Einsen besteht, dann laufen sicherlich genügen Nullen frei herum. :D
    Signature-Move 8o
    kein Problem mit privaten Konversationen zu Thema XY :thumbup: