Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

ASP.NET 2.0 C# session prüfen

Empfohlene Antworten

Veröffentlicht

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.

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)

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.

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.

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.

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:

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.