Response.Redirect ReturnUrl

时间:2011-02-10 20:53:33

标签: asp.net

我正在尝试在使用路由和成员身份的ASP.NET页面上使用Response.Redirect - 以便将未登录的用户重定向到主页面。这是一个有时可以根据内容查看匿名用户的页面。当我重定向到登录页面时,浏览器会使用无效内容填充returnurl。

问题是如何在将用户“关闭”之前删除ReturnURL?或者我如何修复它以使其包含正确的链接?

该页面位于不同的目录中。它正确地重定向,但将ReturnURL设置为无效路径。

ReturnUrl只是设置为该文件夹。不是带有查询参数的页面也不是路由。

更新

好的,它在做什么

我有一个文件夹Actions。我正在重定向到Login.aspx。它重定向到login.aspx,但然后将returnurl设置为Actions / Login.aspx,这绝对是错误的。

2个帐户错误:

  1. login.aspx不存在于actions文件夹
  2. 它会创建一个递归重定向
  3. 部分更新固定

    好的,那是因为我在不同的文件夹中,没有重定向到正确的页面。

    我有“login.aspx”而不是“../ login.aspx”

    但是,它没有将returnurl设置为路由路径。它正在剥离回归。我可能已经决定这样做作为一个设计决定,但不是百分百肯定。

1 个答案:

答案 0 :(得分:2)

我还没有理解你所面临问题的细节,但我想你可能错过了申请Server.UrlEncode来回复网址。请查看Server.UrlEncode

所做的事情

http://msdn.microsoft.com/en-us/library/ms525738(v=vs.90).aspx

下面是一段代码,其中显示了如何使用Server.UrlEncode

指定Return Url
Response.Redirect(FormsAuthentication.LoginUrl + "?ReturnUrl=" + 
Server.UrlEncode(Request.Url.ToString()))