2009-07-04 16 views

Antwort

1

EDIT

Basierend auf Ihren Kommentar, würde ich vorschlagen, dies über einen Controller individuelle Basis Handling, die alle Ihre anderen Controllern von zustünden. Veranlassen Sie, dass der benutzerdefinierte Basiscontroller OnActionExecuting überschreibt und nach einem abgelaufenen Status sucht. Wenn der Status abgelaufen ist, entfernen Sie den Authentifizierungscookie aus der Antwort (FormsAuthentication.SignOut), und legen Sie die Result-Eigenschaft des ActionExecutingContext-Parameters auf HttpUnauthorizedResult fest. Alternativ können Sie auch einfach zu einer Abmeldeaktion umleiten.

Sie sollten auch sicherstellen, dass Ihr Sitzungszeitlimit und das Zeitlimit für die Zeitüberschreitung der Formularauthentifizierung identisch sind.

Ursprüngliche Antwort gelassen Kontext

ich genau bin nicht sicher, was Sie fragen. Wenn die Serversitzung abläuft, ist das Authentifizierungsticket im Cookie nicht mehr gültig. Jede Aktion, für die eine Autorisierung erforderlich ist (die mindestens eine Authentifizierung erfordert), sollte ein HttpUnauthorizedResult zurückgeben, das standardmäßig zur Anmeldeseite von Forms umleitet.

Fragen Sie, wie Sie die Sitzung auf der Client-Seite ablaufen lassen, so dass der Client auch ohne eine Anfrage etwas tut? Wenn ja, könnten Sie interessiert sein, wie ich das über Javascript/Ajax handhabe. Siehe meinen Blogbeitrag unter client-side session termination unter http://farm-fresh-code.blogspot.com.

+0

In diesem Fall läuft die Sitzung auf dem Sitzungsstatus-Dienst ab, so dass der Client-Cookie noch gültig ist, dass ich ablaufen muss – mamu

+0

Ich habe meine Antwort basierend auf Ihrem Kommentar aktualisiert. – tvanfosson

0

Ich denke, Sie möchten Browserverlauf nach Benutzer abmelden.

+1

IMHO die Frage geht um * Server-Side * Session Invalidation. – Boldewyn

Verwandte Themen