VS2012的Web.config中使用machineKey

在VS2012中新建项目,Web.config中使用machineKey,总是报错:

“验证视图状态 MAC 失败。如果此应用程序由网络场或群集承载,请确保 <machineKey> 配置指定了相同的validationKey 和验证算法。不能在群集中使用 AutoGenerate。”

后来从网上查找原因,发现是升级至ASP.NET 4.5后导致的。

ASP.NET 4.5的默认设置是:

<machineKey compatibilityMode="Framework45" />

ASP.NET 4.5对表单验证的加/解密算法进行了改进,如果不是同时将所有ASP.NET应用程序升级至ASP.NET 4.5,为了保持表单验证的兼容性,需要修改compatibilityMode的设置。

<machineKey compatibilityMode="Framework20SP1"/>

<machineKey compatibilityMode="Framework20SP2"/>

修改web.config如下:

<machineKey validationKey="6799A837225DBC4C740C4BDF5B369C7C7BF7DF5EAF09AF82EC225EE1DE94A6E97B2A0FD9759BE504E90D1EDF05D4891F0EDF9D3B01A433F642407C18A25764B7" decryptionKey="6980FD19A2C05E2FF0B5634EDF0BE2C4C4C880F0126739C9" decryption="3DES" validation="SHA1" compatibilityMode="Framework20SP2"/>

一切OK!

 

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。