这是一个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中运行基于.NET Framework 3.5的应用程序4.如果您正在运行WebMatrix,要解决此问题,请转到“设置”节点以将.NET Framework版本设置为“.NET 2”。您还可以从web.config文件中删除其他部分。 我需要一些关于如何解决这个问题的建议,谢谢。
答案 0 :(得分:0)
我认为这与第3点有关:
<httpRuntime requestValidationMode="2.0" />
如果在Web.Config中更改了该错误,则会解决错误,但会立即弹出另一条错误消息。
您应该执行错误消息中描述的步骤,或者应该删除'system.web.extensions/scripting/scriptResourceHandler'
部分
在您的web.config(如果可能)或machine.config(s)中。
32位
%windir%\Microsoft.NET\Framework\[version]\config\machine.config
64位
%windir%\Microsoft.NET\Framework64\[version]\config\machine.config
发生这种情况的原因是因为您安装了一些修改machine.config文件的软件。