1

我页面中的一些 Controller-Action 用该[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 回答