AntiForgeryToken和MachineKey配置

时间:2011-07-10 17:26:12

标签: asp.net-mvc antiforgerytoken machinekey

我正在尝试将.NET MVC应用程序部署到GoDaddy服务器。我的一个页面上有一个Html.AntiForgeryToken,每当我点击它时就会抛出异常。

Validation of viewstate MAC failed. If this application is hosted by a Web Farm or cluster, ensure that <machineKey> configuration specifies the same validationKey and validation algorithm. AutoGenerate cannot be used in a cluster.

我使用以下网址生成了一个机器密钥

 http://aspnetresources.com/tools/machineKey

并将页面viewStateEncryptionMode设置为“Always”

<pages viewStateEncryptionMode="Always">

然而,我仍然收到错误,并且对于下一步该做什么感到迷茫。任何建议都将不胜感激。

1 个答案:

答案 0 :(得分:0)

我终于明白了。我做了一点google搜索,发现如果我不清除浏览器上的缓存,它将保留无效的viewstate。显然,除非所有的Chrome浏览器窗口都关闭(我使用了大量的Chrome浏览器),否则chrome会在每个连续的浏览器中保留一些相似的viewstate,即使缓存已被清除。

我发现代码在Firefox和IE中尝试成功了。然后我关闭了所有的chrome窗口(清除缓存后)并重新启动。然后,我能够成功导航到包含AntiForgeryToken的页面。