我正在尝试在使用路由和成员身份的ASP.NET页面上使用Response.Redirect - 以便将未登录的用户重定向到主页面。这是一个有时可以根据内容查看匿名用户的页面。当我重定向到登录页面时,浏览器会使用无效内容填充returnurl。
问题是如何在将用户“关闭”之前删除ReturnURL?或者我如何修复它以使其包含正确的链接?
该页面位于不同的目录中。它正确地重定向,但将ReturnURL设置为无效路径。
ReturnUrl只是设置为该文件夹。不是带有查询参数的页面也不是路由。
更新
好的,它在做什么
我有一个文件夹Actions。我正在重定向到Login.aspx。它重定向到login.aspx,但然后将returnurl设置为Actions / Login.aspx,这绝对是错误的。
2个帐户错误:
部分更新固定
好的,那是因为我在不同的文件夹中,没有重定向到正确的页面。
我有“login.aspx”而不是“../ login.aspx”
但是,它没有将returnurl设置为路由路径。它正在剥离回归。我可能已经决定这样做作为一个设计决定,但不是百分百肯定。
答案 0 :(得分:2)
我还没有理解你所面临问题的细节,但我想你可能错过了申请Server.UrlEncode
来回复网址。请查看Server.UrlEncode
在
http://msdn.microsoft.com/en-us/library/ms525738(v=vs.90).aspx
下面是一段代码,其中显示了如何使用Server.UrlEncode
Response.Redirect(FormsAuthentication.LoginUrl + "?ReturnUrl=" +
Server.UrlEncode(Request.Url.ToString()))