簡體   English   中英

如何在asp.net FriendlyUrls中使用ReturnUrl?

[英]How to use ReturnUrl in asp.net FriendlyUrls?

我是asp.net中的FriendlyUrl概念的初學者。 我想使用ReturnUrl作為登錄頁面。 仍然可以使用http://localhost:8080/login?ReturnUrl=/page嗎?

因此,一旦用戶登錄,系統將重定向到returnurl

是的,如果我正確理解您的問題,這仍然是可能的,但可能不是您所期望的。 您的ReturnUrl是Querystring 參數 ,Friendlyurls插件將保持不變,但是Friendlyurl不會單獨使用此參數進行重定向。 那是你必須要做的。

您在代碼中唯一需要做的就是在登錄代碼完成並成功驗證用戶身份之后,使用此參數執行Response.Redirect 您可以省略斜線,這樣會更容易。 只需在后面的代碼中執行此操作即可:

VB

If Request.QueryString("ReturnUrl") <> Nothing Then  
  Response.Redirect(Request.QueryString("ReturnUrl"))
Else
// Do your normal redirect here
End If

C#

if (Request.QueryString["ReturnUrl"] != "" && 
Request.QueryString["ReturnUrl"] != null) 
{  
    Response.Redirect(Request.QueryString["ReturnUrl"]);
}
else
{
    // Do your normal redirect here
}

這樣,您的代碼將檢查ReturnUrl是否可用,如果可用,請使用它進行重定向,或者使用默認重定向(如果可用)。

當然,重定向時必須考慮項目的文件夾結構。 如果要重定向到的頁面在項目的子文件夾中,則需要將子文件夾添加到重定向位置,如下所示: ReturnUrl=SubfolderName/Page 即使您使用的是FriendlyUrls和Distinct頁面名稱,這始終很重要。

我有一個同樣的問題,其中FriendlyUrls不能作為ReturnUrl使用,我使用的解決方案是覆蓋如下所示的ReturnUrl。 Jeroens代碼將提供一個額外的選項來使用ReturnUrl。

Protected Sub Login1_LoggedIn(ByVal sender As Object, ByVal e As System.EventArgs) Handles Login1.LoggedIn
    'overrides ReturnUrl page parameter
    Response.Redirect(Login1.DestinationPageUrl)
End Sub

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM