私のページの一部のコントローラ アクションは、[Authorize]
属性で装飾されています。ログインページへの転送は完璧に機能しますが、ログインに成功した後、要求された URL に転送したいと考えています。Request.UrlReferrer
どこから来たのかURLを取得しますが、要求されたアクション(ログインが必要)を取得する場所は?
ありがとうございます!
私のページの一部のコントローラ アクションは、[Authorize]
属性で装飾されています。ログインページへの転送は完璧に機能しますが、ログインに成功した後、要求された URL に転送したいと考えています。Request.UrlReferrer
どこから来たのかURLを取得しますが、要求されたアクション(ログインが必要)を取得する場所は?
ありがとうございます!
このLogin()
アクションはreturnUrl
、ログインからリダイレクトするときに使用される文字列パラメータを受け取ります。
returnUrl を ViewBag に追加して、ビューを返すことができます。
例:
public ActionResult Login(string returnUrl)
{
ViewBag.ReturnUrl = returnUrl;
return View();
}
ターゲット アクションは、投稿されたデータを使用してユーザーを認証し、FormsAuthentication を使用してユーザーをログインします。次に、ユーザーを returnUrl にリダイレクトします。
[HttpPost]
public ActionResult Login(LoginModel model, string returnUrl)
{
if (//Validation Check)
{
FormsAuthentication.SetAuthCookie(model.UserName, model.RememberMe);
return Redirect(returnUrl); // Redirect to referer
}
ViewBag.ReturnUrl = returnUrl;
ModelState.AddModelError("", "The user name or password provided is incorrect.");
return View(model);
}