【问题标题】:ASP.net MVC AntiForgeryTokenASP.net MVC AntiForgeryToken
【发布时间】:2018-06-11 03:07:52
【问题描述】:

我一直在将AntiForgeryToken 添加到我的网站,但我不断遇到错误 这指的是我的登录页面(POST)

  1. “所需的防伪cookie“__RequestVerificationToken”不存在。”

  2. 提供的防伪令牌用于用户“”,但当前用户是“userXYZ”。

我的登录页面是这样的:

<form action="~/Login" method="post">
 @Html.AntiForgeryToken()
...
</form>

[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Login(login a)
{
}

我看过这个:

The required anti-forgery form field "__RequestVerificationToken" is not present Error in user Registration

还有这个
Anti forgery token is meant for user "" but the current user is "username"

但我不清楚答案是什么?

有什么想法吗?

【问题讨论】:

  • 您是否尝试过第一个链接中提出的所有解决方案?检查您的 web.config 和解决方案属性?尝试使用@using(Html.BeginForm())?

标签: asp.net-mvc


【解决方案1】:

好的,所以我已经解决\修复了我的第二个问题。

所以用户会登录,然后按回,再次登录,然后得到

"提供的防伪令牌是为用户""提供的,但是 当前用户是“userXYZ”。”

所以实际上在我的依赖注入中抛出了一个异常,它要求一个不存在的控制器。 于是我找到了这个网站http://www.learnsharecorner.com/asp-net/fixed-httpantiforgeryexception-the-provided-anti-forgery-token-was-meant-for-user-but-the-current-user-is-username/

将以下内容放在我的 GET 上

[OutputCache(NoStore = true, Duration = 0, VaryByParam = "None")]

问题已经过去了(但仍想深入了解它)。

你还在寻找问题 1 的解决方案吗?

【讨论】:

    猜你喜欢
    • 2010-11-23
    • 2013-07-22
    • 2013-02-05
    • 2011-01-02
    • 1970-01-01
    • 2015-12-13
    • 2013-01-06
    相关资源
    最近更新 更多