![]() |
Benutzer darf sich nur einmal anmelden
Hallo Leute,
ich suche nach einer Möglichkeit einen Benutzer so abzufragen, dass er sich nur einmal am Programm anmelden kann, egal von welchem Rechner. Prinzipiell könnte man ja ein Flag in der Datenbank setzen. Das Problem ist nur was mache ich, wenn das Programm abstürzt oder "abgeschossen" wird. Dann bleibt das Flag stehen und das Programm denkt irrtümlich der Nutzer wäre noch angemeldet. Ich dachte das man dies irgendwie über die Oracle-Datenbank abfragt, da die Datenbank eigentlich ständig läuft.:-D Ich bin aber auch für andere Lösungsvorschläge offen.:!::gruebel: Vielen Dank. Gruß Horst |
AW: Benutzer darf sich nur einmal anmelden
Bei Firebird kann man den / die gerade angemeldeten Benutzer über eine Monitortabelle abfragen. Der Server erkennt, wenn der Client nicht mehr da ist. Möglicherweise gib es bei Oracle ähnliche Möglichkeiten.
Sollte das ganze im Netz laufen, kann man das auch über eine Datei auf einer gemeinsamen Freigabe machen. Die Datei wird vom ersten Benutzer exklusiv erstellt. Kann der zweite usw. die Datei nicht anlegen, weil diese noch offen ist, kann man dann die Meldung anzeigen. |
AW: Benutzer darf sich nur einmal anmelden
Zeitstempel ergänzen und die Anwendung aktualisiert den alle x Minuten.
Absturz -> Zeistempel ist veraltet -> Client gestorben. |
AW: Benutzer darf sich nur einmal anmelden
Du hast im Programm "eine" DB-Connection.
Da kann man die Datenbank fragen, welche Connections es aktuell gibt, und ist bereits wer mit der selben IP/Name/Sonstwas verbunden, dann die neue Verbindung wieder trennen. |
AW: Benutzer darf sich nur einmal anmelden
- Eine tabelle mit Usernamen.
- Meldet sich ein USer an, lösch alle USer aus der Tabelle - alle x sek tragen sich angemeldete User in der Tabelle neu ein |
AW: Benutzer darf sich nur einmal anmelden
Es gibt einen view namens v$session, der gefühlt 100 Spalten mit Verbindungsinformationen hat. Wahrscheinlich mittlerweile in aktuellen Oracle Versionen 200 Spalten. U.a. kannst Du dort IP Adresse, client und aufrufendes Programm abfragen. Die Startzeit des letzten SQL, des vorletzten, die Ausführungsdauer,..
Mglw. reicht das schon für eine brauchbare Prüfung, kommt sicher auch drauf an, wie sich das Programm verhält, ob es mit Threads / Multi Session arbeitet usw. Von Oracle selbst gibt es einen Mechnismus dafür. DCD, wahrscheinlich schlanker gelöst, als man es selbst per Tabelle und Updates machen würde. Zitat:
![]() |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:05 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz