【问题标题】:The anti-forgery cookie token and form field token do not match MVC防伪cookie令牌和表单字段令牌不匹配MVC
【发布时间】:2021-09-07 16:56:18
【问题描述】:

就我而言,我遇到了问题

防伪cookie令牌和表单字段令牌不匹配。

我有多个服务器,所以我为所有服务器设置了相同的机器键值,仍然不知道为什么这个问题仍然存在。

我也在使用输出缓存,当我禁用输出缓存时,我遇到了不同的问题,即“所需的防伪 cookie“__RequestVerificationToken_L015V1AvU1BP0”不存在”。

我知道接下来我应该检查什么吗?

【问题讨论】:

  • 检查您的反向代理配置。您可能需要在负载均衡器上配置基于 cookie/IP 的会话亲和性。

标签: asp.net-mvc antiforgerytoken


【解决方案1】:

在视图上添加的输出缓存正在被缓存。因此,如果页面在缓存的持续时间内被访问,_RequestVerificationToken 不会从服务器重新呈现。

要解决此问题,有两种选择

  1. 您可以删除输出缓存

或者需要缓存,第二个选项是

  1. 在单独的 ajax 调用中从返回包含令牌的部分视图的父视图中呈现伪造令牌。在这种方法中,您的主视图将使用输出缓存进行缓存,但包含令牌的部分视图将不会被缓存。因此,当我们在验证令牌的服务器上提交父视图表单时,它将正常工作。

【讨论】:

    【解决方案2】:

    设置机器密钥可能有问题。你是如何生成机器键值的?请仔细检查机器密钥。在 IIS 管理器中生成机器密钥。请参考以下链接生成机器密钥并将其添加到网络配置中,并将其添加到所有前端。

    https://support.winhost.com/kb/a1623/how-to-generate-a-machine-key-in-iis-manager.aspx

    【讨论】:

      猜你喜欢
      • 2013-08-08
      • 2018-01-05
      • 1970-01-01
      • 2017-03-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-06-17
      • 2018-06-19
      相关资源
      最近更新 更多