默认MVC web应用程序没有返回URL
当使用FormsAuthentication实现MVC web应用程序时,FormsAuthentication机制似乎会自动将?ReturnUrl=/附加到MVC路由中。不过,我确实注意到,MVC 3提供的开箱即用的默认web应用程序实现了FormsAuthentication,但似乎没有遇到附加的ReturnUrl=/问题。我查看了代码,看不出这是在哪里处理的。有人知道吗?在默认MVC web应用程序没有返回URL,url,asp.net-mvc-3,forms-authentication,Url,Asp.net Mvc 3,Forms Authentication,当使用FormsAuthentication实现MVC web应用程序时,FormsAuthentication机制似乎会自动将?ReturnUrl=/附加到MVC路由中。不过,我确实注意到,MVC 3提供的开箱即用的默认web应用程序实现了FormsAuthentication,但似乎没有遇到附加的ReturnUrl=/问题。我查看了代码,看不出这是在哪里处理的。有人知道吗?在AccountController的登录操作中,您将看到,如果存在返回url,用户将在成功登录后重定向到该url: [
AccountController
的登录
操作中,您将看到,如果存在返回url,用户将在成功登录后重定向到该url:
[HttpPost]
public ActionResult LogOn(LogOnModel model, string returnUrl)
{
if (ModelState.IsValid)
{
if (MembershipService.ValidateUser(model.UserName, model.Password))
{
FormsService.SignIn(model.UserName, model.RememberMe);
if (Url.IsLocalUrl(returnUrl))
{
return Redirect(returnUrl);
}
else
{
return RedirectToAction("Index", "Home");
}
}
else
{
ModelState.AddModelError("", "The user name or password provided is incorrect.");
}
}
// If we got this far, something failed, redisplay form
return View(model);
}
在
AccountController
的LogOn
操作中,您将看到,如果存在返回url,用户将在成功登录后重定向到该url:
[HttpPost]
public ActionResult LogOn(LogOnModel model, string returnUrl)
{
if (ModelState.IsValid)
{
if (MembershipService.ValidateUser(model.UserName, model.Password))
{
FormsService.SignIn(model.UserName, model.RememberMe);
if (Url.IsLocalUrl(returnUrl))
{
return Redirect(returnUrl);
}
else
{
return RedirectToAction("Index", "Home");
}
}
else
{
ModelState.AddModelError("", "The user name or password provided is incorrect.");
}
}
// If we got this far, something failed, redisplay form
return View(model);
}
尝试将[Authorize]属性添加到操作或控制器。这将生成登录后重定向所需的url。尝试将[Authorize]属性添加到操作或控制器。这将生成登录后重定向所需的url。我想我没有充分解释我的问题。问题是默认web应用程序没有附加?ReturnUrl=/。我正在实现上面的代码,该代码确实有效(尽管注销后会引发另一个问题,您希望再次登录)。事实上,不管你去哪一页,它都不会附加任何返回URL。我想我没有充分解释我的问题。问题是默认web应用程序没有附加?ReturnUrl=/。我正在实现上面的代码,该代码确实有效(尽管注销后会引发另一个问题,您希望再次登录)。事实上,不管你去哪一页,它都不会附加任何返回URL。我遇到了完全相同的问题,我被难住了。希望有人知道出了什么问题。我遇到了完全相同的问题,我被难住了。希望有人知道出了什么问题。