【发布时间】:2016-03-20 02:53:07
【问题描述】:
我正在开发一个 asp.net mvc 5 应用程序,我试图通过应用以下代码重定向到 ReturnUrl:
[HttpPost]
[AllowAnonymous]
public ActionResult Login(UserLogin model, string returnUrl)
{
if (ModelState.IsValid)
{
string EncryptedPassword = GetMD5(model.Password);
if (DataAccess.DAL.UserIsValid(model.Username, EncryptedPassword))
{
FormsAuthentication.SetAuthCookie(model.Username, true);
if (String.IsNullOrEmpty(returnUrl))
{
return RedirectToAction("Index", "Home");
}
else
{
Response.Redirect(returnUrl);
}
}
else
{
ModelState.AddModelError("", "Invalid Username or Password");
}
}
return View();
}
上面的代码工作正常,但问题是当我发布登录表单时,它给了我一个我以前从未遇到过的异常,我在解决视图中生成的异常时遇到了困难Login.cshtml,在线:
@Html.AntiForgeryToken()
以及它抛出的异常:
发送 HTTP 标头后,服务器无法附加标头。
我研究了很多,但我无法得出结论。当我删除 @Html.AntiForgeryToken() 行时,我的应用程序工作正常,但我不想这样做,我希望我的应用程序保持跨站点请求保护。
谁能帮帮我,我该如何摆脱这个异常?
【问题讨论】:
-
显示使用@Html.AntiForgeryToken()行的视图代码
-
您的 @Html.AntiForgeryToken()` 是否在您的 View 中?
-
@PedroBenevides 是的,它在 Begin 表单内..抱歉回复晚了。
-
在德语中,此消息显示为“Der Server kann den Header nicht anhängen, nachdem HTTP-Header gesendet wurden.”,以防有人在谷歌上搜索。