ASP.NET 验证视图状态 MAC 失败的解决方法

 

 

  • 错误信息:验证视图状态 MAC 失败。如果此应用程序由网络场或群集承载,请确保 <machineKey> 配置指定了相同的 validationKey 和验证算法。不能在群集中使用 AutoGenerate。
  • 网上流行的一种错误解决方案:

1:修改当前页面的@page属性,添加enableEventValidation="false" viewStateEncryptionMode="Never"

或者在web.config里添加<pages enableEventValidation="false" viewStateEncryptionMode="Never" />

2:修改当前页面的@page属性,添加enableEventValidation="false" enableViewStateMac="false"

或者在web.config里添加<pages enableEventValidation="false" enableViewStateMac="false" />

关闭这些属性会严重降低安全性,如果你的网站还要拿出去卖钱或者要经受安全公司的测试,还是不要这么做。

 

 

  • 正确的解决方法:

 

 

         在 web.config 的 configuration/system.web/ 下配置

 

 

<machineKey 
   validationKey="AutoGenerate|value[,IsolateApps]"
   decryptionKey="AutoGenerate|value[,IsolateApps]"
   validation="[SHA1|MD5|3DES]"
   decryption="[Auto|]"
/>

 

  • decryption 解密算法。可选值:Auto(默认)、AES、3DES。(在 .NET Framework 1.1 及以下版本中,没有此属性)
  • decryptionKey 加解密密钥。这里要自己手动设置为十六进制字符串,长度根据所选密钥设定。
  • validation 验证算法。可选值:AES、MD5、SHA1(默认)、3DES
  • validationKey 验证密钥,用来创建 MAC(消息身份验证代码),以保证视图状态未被更改。这里要自己手动设置为十六进制字符串,长度根据所选密钥设定。
  • 自动产生machinekey密钥的在线工具http://www.cftea.com/tools/online/machineKey/
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值