Viewstate MAC验证失败

时间:2009-12-15 15:08:14

标签: asp.net viewstate

我已经在我的网站上长时间验证了viewstate错误,我还没有能够重现。基于用户代理和IP地址,它似乎主要来自垃圾邮件发送者。我已经进行了多次修复(包括禁用事件和请求验证,并将viewstate隐藏字段移动到表单顶部),认为可能的原因是回发太快,就像我在搜索建议时发现的大多数事情一样。 / p>

然而,在过去几天我注意到同样的问题,当我启动浏览器时,仍然在前一天的标签页中打开我的开发网站。它会将我重定向到登录页面以再次登录。通常我不会实际登录并使用它大约半小时,但是一旦我这样做,它就会抛出viewstate错误的验证。它几乎就像是视图状态到期或其他东西。

有没有人遇到过视图状态过期或知道它是否会过期并导致此类问题?或者你知道在表单完全呈现之前还有什么可能导致除了web场/机器密钥或回发之外的viewstate错误?

更新:我刚刚比较了我遇到问题时页面之间的_VIEWSTATE隐藏字段的值和它工作时的同一页面的值,并且值完全相同。

1 个答案:

答案 0 :(得分:1)

如果您的应用程序回收并且您已启用自动生成的计算机密钥,则Viewstate可能会过期。使用机器密钥计算Viewstate MAC以停止篡改。如果机器密钥发生变化,则变为无效。正如你在前一天谈论一台开发机器一样,这可能就是正在发生的事情。

我希望您没有离开事件并禁用请求验证。如果你有...你的网站地址是什么?