2009-04-06 4 views
1

Ich habe einen Usercontroller, die Methoden wie Register haben, Login, Logout, usw.zurück zum vorherigen Controller und die Aktion in mvc.net Rerouting

Auf meiner Seite habe ich ein kleines Login-Formular, das ich als gemacht habe eine Teilansicht und ist Teil einer Masterpage. Das Verhalten, das ich will, ist in der Lage sein, von jeder Ansicht einzuloggen und dann zu dem Controller zurückzukehren, an dem ich war, als ich die Login-Methode anrief.

Ich kann die Methoden von überall gut anrufen, aber kann nicht herausfinden, was zu tun ist, um herauszufinden, welche Controller und Aktion der Benutzer bei der Umleitung war.

+0

Warum können Sie die Standardformularauthentifizierung nicht verwenden? Ihr gewünschtes Verhalten ist, was Sie aus der Box bekommen. –

Antwort

0

Verwenden Sie den Referer-Header von der HTTP-Anforderung. In PHP erhalten Sie es mit $ _SERVER ['HTTP_REFERER']; Ich weiß nicht, wie es in ASP.NET gemacht wird, aber es sollte nicht zu schwer sein, wenn Sie nach "HTTP Header Referer" suchen.

0

Es ist nicht garantiert, dass der Referer gefüllt ist, da einige Proxies ihn nicht senden. Also ich würde empfehlen, davon abzuhängen.

Wenn Sie einen Benutzer von einer geschützten Seite zur Anmeldeseite umleiten, speichern Sie stattdessen die Position im Session-Objekt oder Viewdata oder TempData-Objekt. Sie können also den Wert dort verwenden, um sie an die Stelle zurückzuleiten, an der sie sich bei der erfolgreichen Anmeldung befanden.

+0

Ich habe die Sitzung so gemacht, aber es ist schrecklich instabil (z. B. wenn mehrere Registerkarten der gleichen Website). Der Referer sollte von einem richtigen Client bevölkert sein. Sonst sollten Sie es nicht bedienen müssen. Genauso wie Sie einen Client wegwerfen, der versucht, das "HTP" -Protokoll oder einen anderen Fehler zu verwenden. –

Verwandte Themen