strico Geschrieben 5. März 2007 Teilen Geschrieben 5. März 2007 Hallo. Kann man nur mit dem Wissen einer bestimmten SessionID herausbekommen, ob der zu dieser ID gehörende Browser geschlossen wurde bzw die Seite verlassen wurde? -------------------------------------------- Wenn sich ein User einloggt wird er zum activeUser. Der activeUser hat seine SessionID mitgespeichert. Wenn sich ein weiterer User einloggen will, wird geschaut, ob er in den activeUser schon vorhanden ist. Wenn er vorhanden ist, müsste jetzt geprüft werden, ob dieser User auch wirklich noch aktiv ist. Problem: Ein User soll nur 1 mal eingeloggt sein. Derzeit fliegt der zuerst eingeloggte User1 raus, wenn sich User2 einloggt. Jetzt soll es am besten so sein, dass User2 sich nur einloggen darf, wenn User1 ausgeloggt wurde. Wenn sich User1 normal ausloggt kann ich die Session und andere Dinge ordentlich beenden. Was aber, wenn der User1 den Browser einfach schließt oder die Seite wechselt (ohne logout zu klicken)? ------------------------------------------------------------- Ich hoffe ich konnte mein Problem deutlich schildern. Vielen Dank für jede Antwort. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
LittleS Geschrieben 5. März 2007 Teilen Geschrieben 5. März 2007 Hi, widerspricht dein Vorgehen nicht irgendwie der Idee einer Webapplikation, bei der mehr als ein User gleichzeitig eingelogt sein darf? s. PS: ob der browser geschlossen wurde, bekommt man serverseitig nicht mit. (evtl. weiß jemand, ob es mit javascript eine möglichkeit gibt) Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
strico Geschrieben 5. März 2007 Autor Teilen Geschrieben 5. März 2007 Angenommen man würde Lizenzen verkaufen (Jeder User genau eine Lizens). Dann sollte doch jeder Account nur maximal 1 mal eingeloggt sein und nicht Kunde A in Berlin und Kunde B in München mit dem selben LoginNamen. Außerdem kann man nicht absehen, ob es evt. zu Datenverlusten (Überschneidungen) kommt, wenn 2 User mit einem Account zur gleichen Zeit arbeiten. Meine Applikation kann natürlich auch 100 User eingeloggt haben, aber jeder dieser 100 User hat seinen eigenen Account. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Bubble Geschrieben 5. März 2007 Teilen Geschrieben 5. März 2007 Was aber, wenn der User1 den Browser einfach schließt oder die Seite wechselt (ohne logout zu klicken)? Dies kannst Du nicht verhindern und hast auch keine Möglichkeit es verlässlich mitzubekommen (JavaScript-Ansätze, die über OnUnload aufgerufen werden, sind auch nicht verlässlich). Du könntest allenfalls eine Zeitspanne einführen, nach deren Ablauf ein inaktiver Benutzer automatisch abgemeldet wird. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
strico Geschrieben 5. März 2007 Autor Teilen Geschrieben 5. März 2007 Die Antwort hab ich leider befürchtet. Dann wird Plan B gemacht. Wenn sich User2 einloggen will, dann bekommt er eine Meldung, dass User1 rausgeschmissen wird. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Chr!st!an Geschrieben 7. März 2007 Teilen Geschrieben 7. März 2007 Hallo, soviel ich weiss, hat das Session Objekt in ASP.NET 2.0 auch eine Unterstützung mit der Datenbank. Diese wird prüfen, ob ein Benutzer schon eingeloggt ist. Auch kann man in der Web.config dann eine Zeitspanne festlegen. Diese Zeitspanne (das ist die zeit der inaktivität des Benutzers) wird geprüft und dann wird der user ausgeloggt. OnUnload wäre keine gute Idee, weil auch dieses Event nicht gefeuert wird, wenn der Browser geschlossen wird. Vielleicht sollte man serverseitig eine Komponente schreiben (Thread, in Verbindung mit einem Prinzipal (system.threading.thread.currentprincipal)), welcher sich die angemeldeten ID's merkt und beim wiederaufruf eine entsprechende meldung gibt. PS: Falls ihr ein JavaScript finden solltet, welches das Schliessen des Browsers auffängt und dem Server mitteilt...bitte ich um eine kurze Nachricht Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.