【问题标题】:Occasional __RequestVerificationToken errors偶尔的 __RequestVerificationToken 错误
【发布时间】:2015-02-07 09:08:53
【问题描述】:

我在 azure 上有一个 MVC Web 应用程序,每天有几百次,我在未处理的异常日志中收到 The required anti-forgery cookie "__RequestVerificationToken" is not present.

我已经正确设置了一切,我的操作方法有[ValidateAntiForgeryToken]

通过查看异常详细信息可以看出,令牌存在于表单中,但 cookie 不存在。

有人知道是什么原因造成的吗?

这是完整的错误。

System.Web.Mvc.HttpAntiForgeryException (0x80004005): The required anti-forgery cookie "__RequestVerificationToken" is not present.
   at System.Web.Helpers.AntiXsrf.TokenValidator.ValidateTokens(HttpContextBase httpContext, IIdentity identity, AntiForgeryToken sessionToken, AntiForgeryToken fieldToken)
   at System.Web.Helpers.AntiXsrf.AntiForgeryWorker.Validate(HttpContextBase httpContext)
   at System.Web.Helpers.AntiForgery.Validate()

【问题讨论】:

  • 马特,你找到解决这个问题的方法了吗?我偶尔也会遇到这些错误。
  • @MarkA - 可能是一些网络爬虫/机器人?使用导致此异常的 IP 进行反向 DNS 查找可能会帮助您找到原因。
  • 没有。这不是爬虫。它发生在一些最常访问的页面上,这些页面只有经过身份验证的用户才能访问。
  • 这是来自 <form> 提交操作,还是来自 Ajax 请求(以及您使用哪个库),或两者兼而有之?
  • @PeterB 在我的情况下来自<form> 提交操作。

标签: asp.net-mvc azure cookies


【解决方案1】:

主要问题是您的客户端cookie问题首先清除浏览器缓存然后检查,我认为您的问题将得到解决

【讨论】:

    【解决方案2】:

    这可能是由许多问题引起的。可能导致问题的原因:

    • 没有启用 cookie 的机器人或客户端
    • 客户端上创建的 cookie 过多(每个域只能处理这么多 cookie 浏览器)并且 AntiForgeryCookie 最终被删除

    【讨论】:

    • 虽然这似乎对其他人有所帮助,但对我来说,这不是答案 :( 我们使用最少数量的 cookie,它不是机器人。我认为生成的令牌不会也超过 4096 大小
    猜你喜欢
    • 2012-05-09
    • 1970-01-01
    • 2011-07-07
    • 1970-01-01
    • 2012-06-08
    • 2014-09-18
    • 1970-01-01
    • 2018-04-14
    • 1970-01-01
    相关资源
    最近更新 更多