2011-05-12 76 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