MVC 4 предоставил маркер защиты от подделки, предназначенный для пользователя «», но текущий пользователь - «пользователь»
Недавно выложили Live веб-приложение, созданное с использованиемMVC 4 а такжеEntity Framework 5,MVC приложение используетRazor Views.
Я заметил использованиеElmah что, когда пользователи входят в приложение, иногда они получают следующую ошибку
The provided anti-forgery token was meant for user "" but the current user is "user"
Мы уже провели небольшое исследование о том, как решить эту проблему, но мне кажется, что ничего не работает. Пожалуйста, смотрите мойВход в систему и соответствующийДействия контроллера ниже.
Razor View
@if (!HttpContext.Current.User.Identity.IsAuthenticated)
{
using (Html.BeginForm())
{
@Html.AntiForgeryToken()
@Html.ValidationSummary(true)
Login Information
Email
@Html.TextBoxFor(m => m.Email, new { @class = "inpt_a" })<br>
@Html.ValidationMessageFor(m => m.Email)
@Html.LabelFor(m => m.Password)
@Html.PasswordFor(m => m.Password, new { @class = "inpt_a" })<br>
@Html.ValidationMessageFor(m => m.Password)
<br>
<p>
</p>
}
}
контроллер
[AllowAnonymous]
public ActionResult Login()
{
return View();
}
[HttpPost]
[AllowAnonymous]
[ValidateAntiForgeryToken]
public ActionResult Login(LoginModel model, string returnUrl)
{
if (ModelState.IsValid && _accountService.Logon(model.Email, model.Password, true))
{
//Validate
}
else
{
// inform of failed login
}
}
Я думал, что все это выглядело хорошо, но ошибка все еще сохраняется. У кого-нибудь есть идеи, как решить эту проблему?
Ваша помощь очень ценится.
Благодарю.