【发布时间】:2014-07-11 02:19:02
【问题描述】:
这是一个 MVC 4 项目,我正在尝试在登录后将用户重定向到 returnUrl,但我遇到了 returnUrl 编码问题。
这是我的登录控制器方法:
[ValidateInput(false)]
[HttpPost]
public ActionResult Login(Models.ViewModels.UserLogin user, string returnUrl)
{
if (ModelState.IsValid)
{
if (user.IsValid(user.UserName, HelpMethods.sha256(user.Password)))
{
FormsAuthentication.SetAuthCookie(user.UserName, user.RememberMe);
if (returnUrl != null)
{
return RedirectToAction(Url.Encode(returnUrl));
}
return RedirectToAction("Index", "Home");
}
else
{
ModelState.AddModelError("", "Fel användarnamn eller lösenord.");
}
}
return View(user);
}
使用此代码,我得到A potentially dangerous Request.Path value was detected from the client (&)。我做了一些研究并尝试了以下方法没有成功。
[ValidateInput(false)]<requestFiltering allowDoubleEscaping="true"/>-
<httpRuntime requestValidationMode="2.0" />,定义了重复的“system.web.extensions/scripting/scriptResourceHandler”部分”,此错误是因为您在 .NET Framework 4 中运行基于 .NET Framework 3.5 的应用程序。如果您是运行 WebMatrix,要解决此问题,请转到“设置”节点将 .NET Framework 版本设置为“.NET 2”。您还可以从 web.config 文件中删除多余的部分。
我需要一些关于如何解决这个问题的建议,谢谢。
【问题讨论】:
标签: asp.net-mvc encoding web-config returnurl