Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/arduino/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 提供的防伪令牌用于与当前用户不同的基于声明的用户_Asp.net Mvc_Antiforgerytoken - Fatal编程技术网

Asp.net mvc 提供的防伪令牌用于与当前用户不同的基于声明的用户

Asp.net mvc 提供的防伪令牌用于与当前用户不同的基于声明的用户,asp.net-mvc,antiforgerytoken,Asp.net Mvc,Antiforgerytoken,在执行操作之前,我尝试使用[ValidateAntiForgeryToken]属性。如果我在未登录的情况下执行此操作,则当前有效。但是,如果在调用此操作之前通过ajax登录,则会出现此错误 提供的防伪令牌用于不同的基于索赔的应用程序 用户比当前用户多 我在我的登录表单中使用存在于网站布局中的@Html.AntiForgeryToken()。从那篇文章到up操作都有@Html.AntiForgeryToken()。我尝试使用Salt,但出现了错误 .我在操作中使用[ValidateAntiForg

在执行操作之前,我尝试使用[ValidateAntiForgeryToken]属性。如果我在未登录的情况下执行此操作,则当前有效。但是,如果在调用此操作之前通过ajax登录,则会出现此错误

提供的防伪令牌用于不同的基于索赔的应用程序 用户比当前用户多

我在我的登录表单中使用存在于网站布局中的
@Html.AntiForgeryToken()
。从那篇文章到up操作都有
@Html.AntiForgeryToken()
。我尝试使用
Salt
,但出现了错误 .我在操作中使用
[ValidateAntiForgeryToken]
属性

  [ValidateAntiForgeryToken]
    [ValidateInput(true)]
    public ActionResult PrePaymentBank(CharterParam charterParam, string MobileForSMS){}
问题是什么?

我今天收到了这封信,修复方法是将[ValidateAntiForgeryToken]替换为[AutoValidateAntiforgeryToken]

.NET Core 2更改了无法抑制用户的进程。抱歉,如果您没有使用.NET Core 2


当页面最初呈现时(即
@Html.AntiForgeryToken()
方法运行时),将为匿名用户生成防伪令牌

通过AJAX请求登录时,您将从匿名用户变为登录用户

稍后提交带有为匿名用户生成的防伪令牌的表单时,验证失败,因为(如异常状态所示)

“令牌”是针对不同的基于声明的用户的[即匿名用户 用户]比当前用户[即您自己登录的用户]


要解决此问题,您需要确保在成功登录AJAX请求后重新生成防伪令牌。

AFAIK,AFT不同的声明错误通常与控制器操作方法有关,请发布控制器代码,返回如图所示的视图。@TetsuyaYamamoto此表单存在于网站布局中。我使用此模式通过Ajax登录用户,登录后将另一个表单发布到预付款银行操作。您是指布局页面或部分视图中的AFT字段吗?如果它被放置在布局页面内,它可能会在使用相同布局的页面请求期间返回AFT异常,因为未经身份验证的用户的旧AFT仍然存在,而经过身份验证的用户使用它。