表单身份验证可以忽略returnUrl

时间:2011-05-12 08:44:48

标签: asp.net forms-authentication

是否有一种简单的方法可以让表单身份验证忽略returnURL?

因此,用户单击链接,站点超时,它们被重定向到我的登录页面(将ReturnUrl附加到URL) - 我不希望这种情况发生,或者当它们再次登录时被忽略。

3 个答案:

答案 0 :(得分:3)

一种选择是在登录表单的代码隐藏中使用一些代码来执行以下操作:

if (!string.IsNullOrEmpty(Request.QueryString["returnUrl"]))
{
    Response.Redirect("path/to/my/login.aspx");
}

换句话说,请在登录页面检查是否存在returnUrl querystring参数,如果存在,请通过重定向回自己将其删除。

答案 1 :(得分:3)

如果您不想显示它,可以将其剥离。我这样做是因为我不希望它显示我设置的SEO友好的URL。

Global.asax文件中输入以下内容:

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

答案 2 :(得分:1)

我不认为您可以在使用表单身份验证时阻止将其添加到URL上。

但是,你不需要来呼叫RedirectFromLoginPage(这就是我假设你现在正在做的事情);您可以做的只是使用SetAuthCookie来保持登录状态,并在此之后随时随地Response.Redirect

相关问题