5 votes

Peut l'authentification des formulaires ignorer le paramètre returnUrl

Y a-t-il un moyen simple de faire en sorte que l'authentification par formulaire ignore l'URL de retour ?

Donc, lorsque l'utilisateur clique sur un lien, que le site expire, il est redirigé vers ma page de connexion (qui ajoute ReturnUrl à l'URL) - je ne veux pas que cela se produise, ou que ce soit ignoré lorsqu'ils se connectent à nouveau.

4voto

Ira Rainey Points 4205

Vous pouvez le supprimer si vous ne voulez pas le montrer. Je le fais parce que je ne veux pas qu'il apparaisse avec les URL conviviales pour le référencement que j'ai configurées.

Dans le fichier Global.asax, mettez ce qui suit :

Protected Sub Application_EndRequest(sender As Object, e As System.EventArgs)

        Dim redirectUrl As String = Me.Response.RedirectLocation
        If Not Me.Request.RawUrl.Contains("ReturnUrl=") AndAlso Not String.IsNullOrEmpty(redirectUrl) Then
            Me.Response.RedirectLocation = Regex.Replace(redirectUrl, "\?ReturnUrl=(?'url'[^&]*)", String.Empty)
        End If

End Sub

3voto

Rob Points 24505

Une option consiste à avoir du code dans le code-behind de votre formulaire de connexion qui fait ce qui suit:

if (!string.IsNullOrEmpty(Request.QueryString["returnUrl"]))
{
    Response.Redirect("chemin/vers/ma/page/de/connexion.aspx");
}

En d'autres termes, vérifiez sur votre page de connexion la présence du paramètre querystring returnUrl et s'il est présent, supprimez-le en vous redirigeant vers vous-même.

1voto

Grant Thomas Points 28280

Je ne pense pas que vous puissiez empêcher cela d'être ajouté à l'URL lors de l'utilisation de l'authentification Forms.

Cependant, vous n'avez pas besoin d'appeler RedirectFromLoginPage (ce que je présume que vous faites actuellement); ce que vous pouvez faire est simplement utiliser SetAuthCookie pour persister l'état de connexion et Response.Redirect n'importe où vous le souhaitez après cela.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X