Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Angemeldete Benutzer in der eigenen Anwendung erkennen (https://www.delphipraxis.net/24610-angemeldete-benutzer-der-eigenen-anwendung-erkennen.html)

Mattin 23. Jun 2004 15:14


Angemeldete Benutzer in der eigenen Anwendung erkennen
 
Hallo Zusammen,

sicherlich hat der ein oder andere von Euch schonmal ein Programm mit einer Benutzerverwaltung erstellt.

Ich hätte da einige Fragen wie der ein oder andere das handhabt.

- Wie würdet Ihr den Benutzer wenn dieser an das Programm angemeldet ist erkennen ?

Sicherlich könnte man bei der Anmeldung in der Benutzerverwaltung ein Flag setzen
Benutzer angemeldet -> TRUE / FALSE

Nachteil, wenn der Benutzer den Rechner ausschaltet ohne sich von der Anwendung ordnungsgemäß abgemeldet zu haben,
steht das Flag in der Benutzerverwaltung immer noch auf TRUE. Der Benutzer benutzt aber das Programm im Moment nicht
mehr.

- Wie kann man dem Benutzer in der Anwendung in allen Formen eine Nachricht zukommen lassen das er sich von Anmeldung
abmelden soll ? Ich meine eine Art Systemnachricht im eigenen Programm.


Vielleicht hat einer von Euch ja Ideen zu diesem Thema.

MathiasSimmack 23. Jun 2004 15:24

Re: Angemeldete Benutzer in der eigenen Anwendung erkennen
 
Zitat:

Zitat von Mattin
Sicherlich könnte man bei der Anmeldung in der Benutzerverwaltung ein Flag setzen
Benutzer angemeldet -> TRUE / FALSE

Nachteil, wenn der Benutzer den Rechner ausschaltet ohne sich von der Anwendung ordnungsgemäß abgemeldet zu haben,
steht das Flag in der Benutzerverwaltung immer noch auf TRUE. Der Benutzer benutzt aber das Programm im Moment nicht
mehr.

Ich glaube, das ist deine geringste Sorge. Wenn der User nämlich den Rechner abschaltet, ohne sich vorher von deinem Programm abzumelden, dann dürfte auch das Flag nicht mehr auf TRUE stehen. ;)

Phoenix 23. Jun 2004 15:29

Re: Angemeldete Benutzer in der eigenen Anwendung erkennen
 
Stimmt. Ausser, der Wert steht in einer Datenbank ;-)

Aber für soetwas gibt es normalerweise Session-Timeouts:
Wird an einer Sitzung für eine bestimmte Zeit nicht mehr gearbeitet, wird der User automatisch ausgeloggt. Das 'Arbeiten' in der Sitzung kann die Anwendung durch regelmässiges polling selber erledigen.

Mattin 23. Jun 2004 15:39

Re: Angemeldete Benutzer in der eigenen Anwendung erkennen
 
Zitat:

Zitat von Phoenix
Stimmt. Ausser, der Wert steht in einer Datenbank ;-)

Das Flag würde in der Datenbank gespeichert, also ist der Benutzer danach noch angemeldet.

Zitat:

Aber für soetwas gibt es normalerweise Session-Timeouts:
Wird an einer Sitzung für eine bestimmte Zeit nicht mehr gearbeitet, wird der User automatisch ausgeloggt. Das 'Arbeiten' in der Sitzung kann die Anwendung durch regelmässiges polling selber erledigen.
Angenommen die Datenbank wäre kein Client/Server System in diesem Fall. Die Datenbank ist Paradox. Gibt es da soetwas wie ein Session-Timeout?

Phoenix 23. Jun 2004 15:46

Re: Angemeldete Benutzer in der eigenen Anwendung erkennen
 
Das müsste man über polling realisieren:

Der Client schreibt solange er angemeldet ist, reglemässig einen aktuellen Timestamp in die Datenbank. Am besten in einer Session-Tabelle, die sagt wann sich welcher Nutzer angemeldet hat und wann der letzte Poll her ist (eben dieser Timestamp).

Nun geht jede Anwendung her, und löscht VOR der eigentlichen Anmeldung alle Datensätze, deren Timestamp älter ist als Now() - Timeout. Dies macht auch das Polling, und zwar bevor es den eigenen Timestamp reinschreibt.

Somit ist sichergestellt, das zu jedem Zeitpunkt an dem ein Nutzer hier an die DB will, _vorher_ alle abgelaufenen Sessions gelöscht werden.


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:28 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz