2013-12-18 179 views
4

請記住,我已經在我的項目的兩個web.config文件中都放了一個機器密鑰,並且我已經檢查過那裏如here所述,不是多個@ Html.AntiForgeryToken()。我在Asp.Net 4中開發了兩個項目,當本地部署時,在第一次嘗試時給我一個失敗的錯誤,第二次沒有問題。我也刪除了cookies和瀏覽記錄,只是爲了確保結果相同。在本地站點初次登錄時出現防僞cookie標記錯誤,第二次嘗試時確定

內部服務器錯誤

的防僞標記無法解密。如果此應用程序是由Web服務器場或羣集託管的 ,請確保所有機器都運行 相同版本的ASP.NET網頁,並且配置中指定了明確的加密和驗證密鑰。 AutoGenerate不能在羣集中使用。

System.Web.Mvc.HttpAntiForgeryException (0x80004005): The anti-forgery token could not be decrypted. If this application is hosted by a Web Farm or cluster, ensure that all machines are running the same version of ASP.NET Web Pages and that the <machineKey> configuration specifies explicit encryption and validation keys. AutoGenerate cannot be used in a cluster. 
    at System.Web.Helpers.AntiXsrf.AntiForgeryTokenSerializer.Deserialize(String serializedToken) 
    at System.Web.Helpers.AntiXsrf.AntiForgeryTokenStore.GetCookieToken(HttpContextBase httpContext) 
    at System.Web.Helpers.AntiXsrf.AntiForgeryWorker.Validate(HttpContextBase httpContext) 
    at System.Web.Helpers.AntiForgery.Validate() 
    at System.Web.Mvc.ValidateAntiForgeryTokenAttribute.OnAuthorization(AuthorizationContext filterContext) 
    at System.Web.Mvc.ControllerActionInvoker.InvokeAuthorizationFilters(ControllerContext controllerContext, IList`1 filters, ActionDescriptor actionDescriptor) 
    at System.Web.Mvc.Async.AsyncControllerActionInvoker.<>c__DisplayClass1e.<BeginInvokeAction>b__16(AsyncCallback asyncCallback, Object asyncState) 
+0

將''添加到'web.config'時出現此錯誤。刪除'httpCookies'部分後,錯誤消失了。不知道它有什麼樣的依賴性。我的項目是ASP MVC 5。 –

回答

0

我也有類似的問題。主應用程序下有另一個webapi虛擬目錄。我檢查了頁面源代碼中只有一個令牌,並且在主應用程序和webapi中都有相同的機器密鑰。

相關問題