2014-12-09 151 views
8

我有一個天藍色的MVC web應用程序,每天幾百次,我在我的未處理的異常日誌中得到The required anti-forgery cookie "__RequestVerificationToken" is not present.偶爾__RequestVerificationToken錯誤

我已經設置正確,我的行動方法有[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() 
+0

馬特,你找到了解決這個問題呢?我偶爾也會遇到這些錯誤。 – mai 2016-03-23 15:46:43

+0

@MarkA - 可能是一些網絡爬蟲/機器人?使用導致此異常的IP進行反向DNS查找可能會幫助您找到原因。 – Shiffty 2016-07-12 12:47:57

+0

不是。它不是爬蟲。它發生在幾個最常訪問的頁面上,這些頁面只能由經過認證的用戶訪問。 – mai 2016-07-12 13:03:03

回答

3

這可能是由許多問題引起的。原因可能導致這個問題:

  • 機器人或客戶未啓用餅乾
  • 太多餅乾正在對客戶端創建(就只有這麼多餅乾的瀏覽器可以爲每個域處理)和AntiForgeryCookie最終被刪除
+0

雖然這似乎幫助了其他人,但對我來說,這不是答案:(我們使用最少量的cookies,它不是一個機器人。我不認爲生成的令牌將超過4096大小 – 2017-05-02 15:13:33

0

主要問題是首先要清除瀏覽器緩存客戶端的cookie問題再查,我想那麼你的問題將解決