首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何捕获mvc-3中的url以进行重定向?

如何捕获mvc-3中的url以进行重定向?
EN

Stack Overflow用户
提问于 2012-07-29 16:31:54
回答 4查看 536关注 0票数 2

我正在研究MVC-3应用程序.在我的应用程序中,如果用户将尝试访问任何修饰为[Authorize]的视图,则用户将重定向到登录视图,用户将输入那里的凭据并重定向到授权视图(用户想去的地方)。

问题:现在如果用户没有帐户,那么他将使用寄存器链接创建一个帐户。但是在创建新帐户后,用户将重定向到家庭。我要他重定向到授权的视图,而不是主页。我怎么能这么做?

EN

回答 4

Stack Overflow用户

发布于 2012-07-29 16:40:30

您必须从登录视图传递url到注册控制器,然后在控制器周围传递它直到用户注册,然后重定向回来。挺累赘的。

票数 0
EN

Stack Overflow用户

发布于 2012-07-29 16:46:34

创建一个从AuthorizeAttribute派生的类,并重写OnAuthorization方法。在此方法中,进行适当的授权检查,如果用户未被授权,则执行以下代码:

代码语言:javascript
复制
var route = new RouteValueDictionary(new { controller = "Account", action = "LogOn", returnUrl = filterContext.RequestContext.HttpContext.Request.RawUrl });
filterContext.Result = new RedirectToRouteResult(route);

然后,在授权控制器中的Login操作中,添加一个名为returnUrl的参数。在验证用户提供了正确的凭据后,执行以下操作:

代码语言:javascript
复制
if (Url.IsLocalUrl(returnUrl))
     return Redirect(returnUrl);

通过将其添加到Application_start中的Global.asax.cs中,确保注册MVC使用的类:

代码语言:javascript
复制
GlobalFilters.Filters.Add(new AuthorizationAttribute());

其中AuthorizationAttribute是派生类的名称。

票数 0
EN

Stack Overflow用户

发布于 2012-07-29 16:53:35

您可以在用户的会话中保存他在重定向之前想要看到的授权页面.Request.Url.AbsoluteUri。试着用过滤器。

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

https://stackoverflow.com/questions/11710914

复制
相关文章

相似问题

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