这个免费的在线工具:http://aspnetresources.com/tools/machineKey产生下machineKey元素web.config文件中的system.web元素。 这里是什么它生成一个例子:
<machineKey validationKey="1619AB2FDEE6B943AD5D31DD68B7EBDAB32682A5891481D9403A6A55C4F91A340131CB4F4AD26A686DF5911A6C05CAC89307663656B62BE304EA66605156E9B5" decryptionKey="C9D165260E6A697B2993D45E05BD64386445DE01031B790A60F229F6A2656ECF" validation="SHA1" decryption="AES" />
一旦你看到这个在你的web.config,错误本身突然有道理。 你所得到的错误说
"ensure that configuration specifies the same validationKey and validation algorithm".
当你看这个machineKey元素,突然间你可以看到它在说什么。
在适当位置修改system.web元素下的pages元素可能不是必需的。这避免了与这些属性相关的安全问题。
通过在你的web.config“硬编码”这个值,即asp.net使用序列化和反序列化视图状态的钥匙留在服务器场中是相同的,无论哪个服务器捡起来。您的加密变得“便携”,因此您的视图状态变得“便携”。
我只是猜测也许非常相同的服务器(不在农场)有这个问题,如果由于任何原因它忘记了它的密钥,由于任何级别上的重置擦除它出。这也许就是为什么你会在空闲时间后看到这个错误,并尝试使用“陈旧”页面。
投票关闭,确切的重复的[CryptographicException:填充是无效的,无法删除和验证视图状态MAC失败](http://stackoverflow.com/questions/1821243/cryptographicexception-padding-is-invalid-and-不能被删除和验证o) – 2010-09-20 18:03:06
不幸的是,这既是ASP.NET的一个bug,也是一个功能。 – 2010-09-20 18:04:17
我已经将页面设置添加为false和机器密钥。两个应用程序中的相同机器密钥仍然显示相同的错误 – Razack 2015-11-14 08:41:43