gpt4 book ai didi

asp.net-mvc - MVC 4 提供的防伪 token 适用于用户 "",但当前用户是 "user"

转载 作者:行者123 更新时间:2023-12-03 04:32:42 25 4
gpt4 key购买 nike

我最近发布了一个使用 MVC 4Entity Framework 5 构建的 Web 应用程序。 MVC 应用程序使用 Razor View

我注意到使用 Elmah 时,当用户登录应用程序时,有时会收到以下错误

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

我已经就如何解决这个问题做了一些研究,但似乎没有什么对我有用。请参阅下面我的登录 View 和相应的 Controller 操作

Razor View

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

}
}

Controller

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

}

我认为这一切看起来都不错,但错误仍然存​​在。有没有人对如何解决这个问题有任何想法?

非常感谢您的帮助。

谢谢。

最佳答案

我相信发生这种情况是因为用户双击了表单上的提交按钮。至少我的网站上确实是这样。

Troubleshooting anti-forgery token problems

关于asp.net-mvc - MVC 4 提供的防伪 token 适用于用户 "",但当前用户是 "user",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20326990/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com