Von MVC 4 bereitgestelltes Anti-Fälschungs-Token war für Benutzer "" gedacht, der aktuelle Benutzer ist jedoch "Benutzer".

Ich habe vor kurzem eine Webanwendung, die mit Live erstellt wurdeMVC 4 undEntity Framework 5. DasMVC Anwendung verwendetRasiermesser-Ansichten.

Ich bemerkte mitElmah Wenn sich Benutzer bei der Anwendung anmelden, wird manchmal der folgende Fehler angezeigt

The provided anti-forgery token was meant for user "" but the current user is "user"

Ich habe bereits einige Nachforschungen angestellt, um dieses Problem zu beheben, aber bei mir scheint nichts zu funktionieren. Bitte sehen Sie meineLogin-Ansicht und entsprechendController-Aktionen unten.

Rasiermesser-Ansicht

@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>

}    
}

Regler

[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
      }

}

Ich fand das alles in Ordnung, aber der Fehler bleibt bestehen. Hat jemand eine Idee, wie dieses Problem behoben werden kann?

Ihre Hilfe wird gerne in Anspruch genommen.

Vielen Dank.

Antworten auf die Frage(3)

Ihre Antwort auf die Frage