Недавно я установил Live web-приложение, которое было создано с использованием MVC 4 и Entity Framework 5. Приложение MVC использует Razor Views.
Я заметил использование Elmah, когда пользователи регистрируются в приложении, иногда они получают следующую ошибку
The provided anti-forgery token was meant for user "" but the current user is "user"
Я уже немного поработал над тем, как исправить эту проблему, но ничего не работает для меня. См. Мой Вход в систему и соответствующие Действия с контроллером ниже.
Просмотр бритвы
@if (!HttpContext.Current.User.Identity.IsAuthenticated)
{
using (Html.BeginForm())
{
@Html.AntiForgeryToken()
@Html.ValidationSummary(true)
<div class="formEl_a">
<fieldset>
<legend>Login Information</legend>
<div class="lbl_a">
Email
</div>
<div class="editor-field">
@Html.TextBoxFor(m => m.Email, new { @class = "inpt_a" })<br />
@Html.ValidationMessageFor(m => m.Email)
</div>
<div class="lbl_a">
@Html.LabelFor(m => m.Password)
</div>
<div class="editor-field sepH_b">
@Html.PasswordFor(m => m.Password, new { @class = "inpt_a" })<br />
@Html.ValidationMessageFor(m => m.Password)
</div>
</fieldset>
</div>
<br />
<p>
<input type="submit" value="Log In" class="btn btn_d sepV_a" />
</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
}
}
Я думал, все это выглядит нормально, но ошибка сохраняется. Есть ли идеи о том, как исправить эту проблему?
Ваша помощь с благодарностью.
Спасибо.