我页面中的某些控制器操作使用[Authorize]
属性进行修饰。转发到登录页面工作正常,但成功登录后我想转发到请求的网址。使用Request.UrlReferrer
我得到了我来自哪里的网址,但是哪里可以获得请求的操作(需要登录)?
先谢谢!
答案 0 :(得分: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);
}