Zum Inhalt springen

ASP.NET 2.0 C# session prüfen


strico

Empfohlene Beiträge

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.

Link zu diesem Kommentar
Auf anderen Seiten teilen

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)

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Link zu diesem Kommentar
Auf anderen Seiten teilen

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 :rolleyes:

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...