brauche kleinen denkanstoss für login

Norbiez

Grünschnabel
Hallo,

ich habe eine mysql-Datenbank mit ner Benutzerdaten-Tabelle erstellt.

Ich habe ein externes Programm geschrieben, in dem sich die Benutzer dessen mittels Shellexecute (sprich: Aufruf des Browser) damit einloggen.

z.b.:
ShellExecute(NULL, _T("open"), "http://meinhost.de/login.php?user=Benutzer1&pass=pass&ip=xxx.xxx.xxx.xxx", NULL, NULL, SW_HIDE);

Sobald die sich damit einloggen, werden die Nutzerdaten (hier die IP) in der DB aktualisiert und der Benutzer als angemeldet eingetragen.

Nun besteht mein Problem, wie ich es am geschicktesten realisieren kann, dass wenn z.b. das Programm terminiert wird (aus welchen Gründen auch immer) und er sich nochmals einloggen will,

zum einen
anzuzeigen dass er noch als eingeloggt drinsteht und

zum anderen
die Möglichkeit geben kann, sich erneut einzuloggen, ohne dass (durch Weitergabe der Login-Daten - wie auch immer) ein anderer an seiner Stelle sich einloggt.

Hoffe es war verständlich und es ist irgendwie möglich

Danke
Norbert
 
zum einen
anzuzeigen dass er noch als eingeloggt drinsteht und
Als Datenbanklösung wäre wahrscheinlich am einfachsten, wenn du deiner Benutzerdaten-Tabelle eine boolsche Spalte "eingeloggt" hinzufügst, und diese jeweils bein ein- und ausloggen setzt.
Da die Browser zu deiner Application verbindungslos sind (also nur anfordern, "wenn sie was brauchen"), bekommst du das ja nicht mit, wenn sich ein Browser so klammheimlich verabschiedet - ob der Browser eines User abgestürzt ist, kannst du also nicht feststellen. Durch Abgleich der IP kannst du sicherstellen, dass dann nur jeweils die neueste IP - also von wo sich der User das letzte mal eingeloggt hat - Daten bekommt.

zum anderen
die Möglichkeit geben kann, sich erneut einzuloggen, ohne dass (durch Weitergabe der Login-Daten - wie auch immer) ein anderer an seiner Stelle sich einloggt.
Genau so, wie der User sich auch sonst einloggt, kann er sich doch auch einloggen, wenn er eigentlich noch eingeloggt ist - der einzige Unterschied ist, dass du ihm durch Abfrage der "eingeloggt"-Spalte anzeigen kannst, dass er sich nicht richtig ausgeloggt hat.

Weiter einschränken würde ich es nicht.
Wenn du z.B. sagst, ein User muss sich erst auf einer Station ausloggen, bevor er sich von irgendwo anders einloggen kann und dies an die IP bindest, dann hat ein User mit Dial-Up-Connection Probleme, wenn seine Verbindung abbricht...
Wenn du das Senden der Informationen von der IP anbhängig machst, wäre es bei dem Fall von obigem Nutzer auch, dass ein anderer Nutzer, der die IP danach zugeteilt bekommt, die Info's unkontrolliert einsehen kann.
Also sollte der weingeloggte Nutzer hierfür immer zusätzlich eine Session-Variable aufweisen können.
 
Zurück