首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何从浏览器地址中消除ReturnUrl

如何从浏览器地址中消除ReturnUrl
EN

Stack Overflow用户
提问于 2010-03-30 16:22:37
回答 4查看 814关注 0票数 2

现在,在未授权的情况下尝试访问某个操作时,我的ASP.NET MVC应用程序会将用户重定向到登录页面,并生成如下所示的网址:

http://www.mysite.com/Account/Log?ReturnUrl=%2Ftest%2Fsampleaction

那么,有没有一种方法可以从URL中消除这个字符串,而是将它保存到某个地方,以便在登录后能够将用户重定向回来?

EN

回答 4

Stack Overflow用户

发布于 2010-04-13 03:46:21

我想知道你为什么要这么做。也许您已经厌倦了滥用、过多的URL参数狂欢,您喜欢干净的RESTful URL风格,以及使用新的ASP.NET路由特性实现它的优雅方式。

但是,在这种情况下,这正是URL参数的用途。这并不是一种糟糕的做法,也不是糟糕的风格。而且绝对没有理由将SEO巫术应用到您的登录页面。那么,为什么要通过直接(或通过TempData间接)要求会话状态或任何其他变通方法来降低此过程对用户的可靠性呢?

票数 4
EN

Stack Overflow用户

发布于 2010-03-30 16:34:22

我会考虑实现我自己的AuthorizationFilter并进行重定向。

代码语言:javascript
运行
复制
public class AuthorizationFilter : IFilter
{
public bool Perform(ExecuteWhen exec, IEngineContext context,
IController controller, IControllerContext controllerContext)
{
if (context.CurrentUser.IsInRole("Administrator"))
{
return true;
}
context.Response.Redirect("home", "index");
return false;
}
}
票数 0
EN

Stack Overflow用户

发布于 2010-03-30 16:37:03

在重定向到登录操作存储url之前

代码语言:javascript
运行
复制
TempData["redirect-url"] = "/requested/page/url";

在登录操作中,读取该值并将其传递给登录视图,然后将其放入隐藏字段。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2543723

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档