Wie verhindere ich, dass der ReturnUrl-Parameter meiner Login.aspx-Seite die DestinationPageUrl-Eigenschaft meines ASP.NET-Anmeldesteuerelements überschreibt?
-
09-06-2019 - |
Frage
Ich verwende das ASP.NET-Anmeldekontrollen Und Formularauthentifizierung für Mitgliedschaft/Anmeldeinformationen für eine ASP.NET-Webanwendung.Ich habe Seiten wie PasswordRecovery.aspx auf die nur anonyme Benutzer zugreifen können.Wenn ich auf einer solchen Seite auf meinen Anmeldelink klicke, wird auf der Anmeldeseite ein angezeigt ReturnUrl Parameter in der Adressleiste:
http://www.example.com/Login.aspx?ReturnUrl=PasswordRecovery.aspx
Und nach einer erfolgreichen Anmeldung kehren die Benutzer zum zurück PasswordRecovery.aspx Seite angegeben in der ReturnUrl Parameter, auf den sie keinen Zugriff mehr haben.
Lösung
Ich habe die Antwort auf gefunden Velocity-Bewertungen.Ich habe das LoggedIn-Ereignis verarbeitet, um eine Umleitung zur DestinationPageUrl-Seite zu erzwingen.
Public Partial Class Login
Inherits System.Web.UI.Page
Protected Sub Login1_LoggedIn(ByVal sender As Object, _
ByVal e As System.EventArgs) Handles Login1.LoggedIn
'overrides ReturnUrl page parameter
Response.Redirect(Login1.DestinationPageUrl)
End Sub
End Class