我正在研究MVC-3应用程序.在我的应用程序中,如果用户将尝试访问任何修饰为[Authorize]的视图,则用户将重定向到登录视图,用户将输入那里的凭据并重定向到授权视图(用户想去的地方)。
问题:现在如果用户没有帐户,那么他将使用寄存器链接创建一个帐户。但是在创建新帐户后,用户将重定向到家庭。我要他重定向到授权的视图,而不是主页。我怎么能这么做?
发布于 2012-07-29 16:40:30
您必须从登录视图传递url到注册控制器,然后在控制器周围传递它直到用户注册,然后重定向回来。挺累赘的。
发布于 2012-07-29 16:46:34
创建一个从AuthorizeAttribute派生的类,并重写OnAuthorization方法。在此方法中,进行适当的授权检查,如果用户未被授权,则执行以下代码:
var route = new RouteValueDictionary(new { controller = "Account", action = "LogOn", returnUrl = filterContext.RequestContext.HttpContext.Request.RawUrl });
filterContext.Result = new RedirectToRouteResult(route);然后,在授权控制器中的Login操作中,添加一个名为returnUrl的参数。在验证用户提供了正确的凭据后,执行以下操作:
if (Url.IsLocalUrl(returnUrl))
return Redirect(returnUrl);通过将其添加到Application_start中的Global.asax.cs中,确保注册MVC使用的类:
GlobalFilters.Filters.Add(new AuthorizationAttribute());其中AuthorizationAttribute是派生类的名称。
发布于 2012-07-29 16:53:35
您可以在用户的会话中保存他在重定向之前想要看到的授权页面.Request.Url.AbsoluteUri。试着用过滤器。
https://stackoverflow.com/questions/11710914
复制相似问题