Frage

Ich bin Einfügen etwas im Cache, wenn der Benutzer eine Anmeldung der Fall ist.

Jetzt möchte ich, dass aus dem Cache löschen, wenn die Sitzung abläuft des Benutzers. Httpcontext ist Null .. so dass ich weiß nicht, für welche Benutzer die Sitzung abgelaufen. Wie kann ich über die Suche nach dieser gehen?

EDIT: leider SessionID mir nicht bieten viel. Was ich in diesem speziellen Fall zu tun ist mit einem Httpmodule, die AuthorizeRequest der aktuellen Benutzername in Cache einzufügen Griffe, um sicherzustellen, dass ein anderer Benutzer von einem anderen Rechner nicht anmelden kann. Aber die Session ist in der Httpmodule null. So kann ich nicht, dass verwenden. Alle anderen Vorschläge?

War es hilfreich?

Lösung

Sie können in einem Httpmodule, um die Sitzung zu erhalten, müssen Sie nur noch warten, bis es initialisiert wird, dh das AcquireRequestState Ereignis ( http://msdn.microsoft.com/en-au/system.web.httpapplication.acquirerequeststate.aspx )

Andere Tipps

Gehen Sie mit dem Session_End Ereignis in Ihrem global.asax. Hier sollten Sie Zugriff auf die SessionID haben.

Unter der Annahme, dass Sie auf jeder Seite die zwischengespeicherten Elemente zugreifen, können Sie das im Cache gespeicherten Rüstungsset einen gleitenden Ablauf haben. Stellen Sie die Ablaufzeit auf die gleiche wie Ihre Session-Timeout. Mit einem Schiebe Exspiration wird aktualisiert die Cache jedesmal, wenn das Objekt zugegriffen wird, und wird entsorgt werden, wenn sie innerhalb dieser Zeit nicht zugegriffen wird.

Siehe http://msdn.microsoft.com/en-us/ Bibliothek / 4y13wyk9.aspx für weitere Informationen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top