他のスタックオーバーフローポストに基づく承認が必要な元のページにリダイレクトされるmvcログインページをまとめようとしました。MVC3ログイン後のリダイレクト
リダイレクト
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を別のフォーラム投稿に基づいて使用しましたが、URL全体が含まれていました。
内部コントローラ私は
[HttpPost]
public ActionResult Login(MyModel model)
{
if (loginisValid)
return Redirect(model.ReturnUrl);
else
return View();
}
を持っているが、それは何もしませんが、それはリダイレクトを打っていてもかかわらず、のorignalのページを返します。私はRedirectToActionとRedirectToRouteも試みましたが、それらはエラーを出します。私はlocalhost/admin/mycontrollerにあるインデックスページでこれをテストしています。したがって、model.ReturnUrlには現在、 "/ admin/mycontroller"が含まれています。私はこの仕事をするために何を変えなければならないのですか?