1

私のページの一部のコントローラ アクションは、[Authorize]属性で装飾されています。ログインページへの転送は完璧に機能しますが、ログインに成功した後、要求された URL に転送したいと考えています。Request.UrlReferrerどこから来たのかURLを取得しますが、要求されたアクション(ログインが必要)を取得する場所は?

ありがとうございます!

4

1 に答える 1

1

この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);
}
于 2013-10-31T15:12:06.083 に答える