http://www.sufeinet.com/plugin.php?id=keke_group

苏飞论坛

 找回密码
 马上注册

QQ登录

只需一步,快速开始

分布式系统框架(V2.0) 轻松承载百亿数据,千万流量!讨论专区 - 源码下载 - 官方教程

HttpHelper爬虫框架(V2.7-含.netcore) HttpHelper官方出品,爬虫框架讨论区 - 源码下载 - 在线测试和代码生成

HttpHelper爬虫类(V2.0) 开源的爬虫类,支持多种模式和属性 源码 - 代码生成器 - 讨论区 - 教程- 例子

查看: 4235|回复: 1

[Asp.Net] 验证视图状态 MAC 失败。如果此应用程序由网络场或群集承载

[复制链接]
发表于 2013-10-9 09:18:12 | 显示全部楼层 |阅读模式
验证视图状态 MAC 失败。如果此应用程序由网络场或群集承载,请确保 <machineKey> 配置指定了相同的 validationKey 和验证算法。不能在群集中使用 AutoGenerate


当runat="server"的表单通过修改action提交数据到其它页面时,也会引发这个问题。
如:

[code=csharp]document.forms[0].action = "AttachmentAdd.aspx";
document.forms[0].submit();[/code]


主要的原因是提交了名为__VIEWSTATE的数据,ASP.NET的验证视图状态的时候失败。
有提交前禁用__VIEWSTATE即可:

[code=csharp]$("#__VIEWSTATE").attr("disabled", true);
document.forms[0].action = "AttachmentAdd.aspx";
document.forms[0].submit();[/code]


下面是网络上其它解决这个问题的建议,希望对你有所帮助:
  1. 1、去掉 runat="server"

  2. 2、添加enableEventValidation="false" enableViewStateMac="false"

  3. 或在webconfig中添加<pages enableEventValidation="false" enableViewStateMac="false" />

  4. 3、在webconfig中添加:<machineKey validation="3DES" validationKey="319B474B1D2B7A87C996B280450BB36506A95AEDF9B51211" decryption="3DES" decryptionKey="280450BB36319B474C996B506A95AEDF9B51211B1D2B7A87" />
复制代码
参考:
MSN 上关于machinekey:
http://msdn.microsoft.com/zh-cn/library/w8h3skw9(v=VS.80).aspx
http://msdn.microsoft.com/zh-cn/library/dtkwfdky(v=VS.80).aspx
4、不使用跨页面提交,提交到本页后在page.load中redirect.
5、使用[code=html] <asp:Button runat="server" PostBackUrl="~/Register/DoRegister.aspx" Text="提交" />[/code]



1. 开通SVIP会员,免费下载本站所有源码,不限次数据,不限时间
2. 加官方QQ群,加官方微信群获取更多资源和帮助
3. 找站长苏飞做网站、商城、CRM、小程序、App、爬虫相关、项目外包等点这里
 楼主| 发表于 2013-10-9 10:51:50 | 显示全部楼层
最简历的方法就是去了runat="server"
您需要登录后才可以回帖 登录 | 马上注册

本版积分规则

QQ|手机版|小黑屋|手机版|联系我们|关于我们|广告合作|苏飞论坛 ( 豫ICP备18043678号-2)

GMT+8, 2024-4-19 17:52

© 2014-2021

快速回复 返回顶部 返回列表