2009-05-11 4 views
1

Ich führe eine Sitzung für die Benutzeranmeldung.Wie wird der Benutzer nach dem Anmelden auf die vorherige Seite (wo die Sitzung abgelaufen ist) umgeleitet?

Betrachten Sie ein Szenario, in dem der Benutzer auf Seite 20 mit seiner Kontoberechtigung arbeitet. Er ist inaktiv für die Sitzungszeitvariable Timeout. Dann fängt er an, auf Seite 20 zu arbeiten und auf den Link von Seite 21 zu klicken. Die Sitzung ist abgelaufen, also wird er zur Anmeldeseite umgeleitet.

Nach erfolgreicher Anmeldung sollte der Benutzer auf die Seite 21 umleiten.

Also wie erreiche ich es?

+0

Siehe http://stackoverflow.com/questions/847232/how-doi-i-use-server-transfer-in-asp-net-mvc/847245#847245 –

Antwort

2

Die erste Methode, die in den Sinn kommt, ist das Senden der Informationen über eine Get/Post-Variable. Wenn Sie die Session-Überprüfung auf Seite 21 durchführen (nehme ich an) und den Benutzer auf die Login-Seite umleiten, können Sie den Seitennamen an die Adresse anhängen, dh auf etwas wie www.xyz.com/login.htm?page21 umleiten (oder falls Sie möchten nicht, dass der Seitenname sichtbar ist, verwenden Sie stattdessen post). Verwenden Sie diese Informationen dann einfach, wenn sich der Benutzer erneut anmeldet, um ihn auf Seite 21 umzuleiten.

Hoffe, dass hilft.

0

Wenn Sie eine Server.Transfer auf die Anmeldeseite als Request.Urlreferrer wäre URL der Page21.

2

Wenn Sie Formularauthentifizierung verwenden, gibt es einen eingebauten Mechanismus, um das zu tun, hier ist es. Es wird automatisch den Benutzer auf die URL-Referrer-Seite umleiten.

+0

HINWEIS: FrameworkManager.Authenticate ist unsere interne Bibliothek. Ich stelle das nur für die einfache Demonstration der Authentifizierungsbedingung auf, die wahr ist. – Vikram

1

Wirklich es hängt davon ab, wie Sie Ihre Sitzung verwenden. Wenn Sie alle Informationen, die der Benutzer auf den Bildschirmen 1-20 in der Sitzung eingibt, behalten, verlieren Sie alles nach Ablauf der Sitzung, so dass Sie sowieso kein Glück haben.

Wenn Sie alles von jeder Seite in einer Datenbank oder einem anderen Mechanismus speichern, sollte es einfach sein zu sagen, welche Informationen der Benutzer zuletzt eingegeben hat. Alternativ können Sie auch die URL oder den Namen der letzten Seite speichern, die der Benutzer in der Datenbank eingereicht hat.

Wenn sie sich anmelden, bestimmen Sie, auf welcher Seite sie sein sollten, dann leiten Sie sie einfach um.

0

Wo würden Sie diesen Code setzen?

Wenn (FrameworkManager.Authenticate (Benutzername, pwd)) Dann
System.Web.Security.FormsAuthentication.RedirectFromLoginPage (Benutzername, rememberme) end if

-1

Wenn Benutzer will wieder über einen anderen Browser um sich einzuloggen dann in In dieser Situation müssen Sie die Statusspalte in Ihrer Datenbank hinzufügen und prüfen, ob der Status wahr ist , dann müssen Sie diesen Benutzer auf der zuletzt besuchten Seite umleiten.So speichern Sie die besuchte Seite über Cookies und erhalten Sie den Seitennamen und Umleitung auf der Seite.

+0

Die Frage war, dass die Sitzung abläuft und nicht, dass man sich in einem anderen Browser anmeldet. Ich bin verwirrt, was empfiehlst du? Dass eine boolesche Statusspalte zu einer Datenbank hinzugefügt wird? Was bedeutet "wahr" hier? Wird es jedes Mal aktualisiert, wenn der Benutzer etwas unternimmt? Woher weißt du, wann die Sitzung abläuft?Wenn Ihre Umleitung auf die zuletzt besuchte Seite funktionieren sollte, indem Sie jedes Mal, wenn der Benutzer zu einer anderen Seite navigiert, ein Cookie setzen und aktualisieren, können Sie das auch in der DB speichern. –

Verwandte Themen