【发布时间】:2011-02-10 20:53:32
【问题描述】:
我正在尝试在使用路由和成员资格的 ASP.NET 页面上使用 Response.Redirect,以便将未登录的用户重定向到主页。根据内容,匿名用户有时应该可以查看此页面。当我重定向到登录页面时,浏览器会用无效内容填充 returnurl。
问题是如何在“关闭”用户之前删除 ReturnURL?或者如何修复它以使其包含正确的链接?
页面位于不同的目录中。它正确重定向,但将 ReturnURL 设置为无效路径。
ReturnUrl 只是设置为文件夹。不要到带有查询参数的页面,也不要到路由。
更新
好吧,它在做什么
我有一个文件夹 Actions。我正在重定向到 Login.aspx。它重定向到 login.aspx,但随后将 returnurl 设置为 Actions/Login.aspx,这是绝对错误的。
在 2 个帐户上是错误的:
- actions 文件夹中不存在 login.aspx
- 它创建一个递归重定向
部分更新修复
好的,这是因为我在不同的文件夹中并且没有重定向到正确的页面。
我有“login.aspx”而不是“../login.aspx”
但是,它没有将 returnurl 设置为路由路径。它正在剥离返回网址。不过,我可能已经决定将其作为设计决策,但不是 100% 确定。
【问题讨论】:
-
这是什么无效内容?你是如何实现重定向的?您重定向到的路由是否符合您的路由规则?当然,你的问题是什么?
-
能贴出相关代码吗?
-
@Oded 确实没有相关的代码。如果您在 ASP.NET 表单页面中实现路由,请打开身份验证,将允许所有用户添加到作为路由路径的路径,然后尝试将用户重定向回登录。你会看到这个。
-
@Oded 1 秒.. 我会提供更多细节
-
我想我只是不明白你的描述是怎么回事。我不知道您要重定向到的 URL 是什么,您的路由是什么样的,无效内容是什么以及它出现在哪里。我可以向你保证,如果我不明白,其他人也不会。
标签: asp.net