是否有一种简单的方法可以让表单身份验证忽略returnURL?
因此,用户单击链接,站点超时,它们被重定向到我的登录页面(将ReturnUrl附加到URL) - 我不希望这种情况发生,或者当它们再次登录时被忽略。
答案 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
。