【问题标题】:How to use ReturnUrl in asp.net FriendlyUrls?如何在 asp.net FriendlyUrls 中使用 ReturnUrl?
【发布时间】:2014-03-03 20:37:55
【问题描述】:

我是 asp.net 中 FriendlyUrl 概念的初学者。我想使用 ReturnUrl 登录页面。还能用http://localhost:8080/login?ReturnUrl=/page吗?

所以一旦用户登录将被重定向到returnurl

【问题讨论】:

  • 您想重定向到另一个 asp.net 网络表单吗?

标签: c# asp.net friendly-url


【解决方案1】:

是的,这仍然是可能的,但如果我正确理解您的问题,可能不是您所期望的。您的 ReturnUrl 是一个 Querystring parameter,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 页面名称,这始终很重要。

【讨论】:

  • 您要找的不是 James123 的遮阳篷吗?也许我可以进一步帮助你?
  • 我也有同样的问题,只是应该把这个放在代码隐藏文件的什么位置?
  • @Cerveser:在您确认成功的帐户登录并创建/准备您的应用程序所需的一切(例如:包含帐户信息等的会话变量)之后。
【解决方案2】:

我遇到了同样的问题,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

【讨论】:

    猜你喜欢
    • 2014-02-21
    • 1970-01-01
    • 1970-01-01
    • 2014-01-07
    • 2020-03-13
    • 1970-01-01
    • 2013-02-22
    • 1970-01-01
    • 2010-12-22
    相关资源
    最近更新 更多