2011-05-12 81 views
5

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

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

回答

3

一种选择是有一些代码在你的登录表单的代码隐藏执行以下操作:

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

换句话说,您在您的登录页面的RETURNURL查询参数的存在,如果它目前,通过重新导向自己将其剥离。

+0

是不是有点......贵? – 2011-05-12 09:19:54

1

我不认为你可以防止在使用表单身份验证时将其粘到URL上。

但是,你不需要需要拨打RedirectFromLoginPage(这是我认为你在做的事情);你可以做的只是使用SetAuthCookie来坚持登录状态和Response.Redirect之后你喜欢的任何地方。

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 
+0

非常好,谢谢 – 2012-03-11 02:16:50