asp.net-mvc-3 – 登录后重定向MVC3

一直试图整合一个mvc登录页面,该页面将重定向回原始页面,该页面需要基于其他堆栈溢出帖子的授权.

重定向

protected override void HandleUnauthorizedRequest(AuthorizationContext filterContext)
{
  filterContext.Result = new RedirectToRouteResult(
                             new RouteValueDictionary 
                               {
                                   { "action", "login" },
                                   {"ReturnUrl", filterContext.HttpContext.Request.RawUrl},
                                   { "controller", "mycontroller" }
                               });
}

登录页面视图有

@Html.Hidden("returnUrl", ViewContext.HttpContext.Request.Params["returnurl"])

位于表格内.我最初使用ViewContext.HttpContext.Request.Url.PathAndQuery基于另一个论坛帖子,但其中包括整个网址.

我有控制器内部

[HttpPost]
public ActionResult Login(MyModel model)
{
   if (loginisValid)
      return Redirect(model.ReturnUrl);
   else
      return View();
}

但这只会返回原始页面,即使它正在击中重定向.我也尝试过RedirectToAction和RedirectToRoute,但是那些会给出错误.我正在我的索引页面上测试它,该索引页面位于localhost / admin / mycontroller.所以model.ReturnUrl目前包含“/ admin / mycontroller”.我应该改变什么来使这项工作?

最佳答案 事实证明,所有这些代码都是正确的.但是,我没有放

[RequireHttps(Order=0)] 

在我的控制器上,所以它永远不会正确地存储cookie,并在重定向回我的索引页面后再次失败授权.

点赞