博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
验证视图状态 MAC 失败。如果此应用程序由网络场或群集承载,请确保 配置指定了相同的 validationKey 和验证算法。不能在群集中使用 AutoGenerate...
阅读量:6224 次
发布时间:2019-06-21

本文共 849 字,大约阅读时间需要 2 分钟。

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

如:

document.forms[0].action = "AttachmentAdd.aspx";

document.forms[0].submit();

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

有提交前禁用__VIEWSTATE即可:

$("#__VIEWSTATE").attr("disabled", true);

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

下面是网络上其它解决这个问题的建议,希望对你有所帮助:

1、去掉 runat="server"

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

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

3、在webconfig中添加:<machineKey validation="3DES" validationKey="319B474B1D2B7A87C996B280450BB36506A95AEDF9B51211" decryption="3DES" decryptionKey="280450BB36319B474C996B506A95AEDF9B51211B1D2B7A87" />

参考:

MSN 上关于machinekey:

4、不使用跨页面提交,提交到本页后在page.load中redirect.

5、使用 <asp:Button runat="server" PostBackUrl="~/Register/DoRegister.aspx" Text="提交" />

转载地址:http://douna.baihongyu.com/

你可能感兴趣的文章
NO.5 选择适合您的禅道项目管理软件安装方法
查看>>
我的友情链接
查看>>
linux编辑器之最利器--vim
查看>>
Ubuntu 安装maven3
查看>>
Python 的 zipfile 模块
查看>>
转载:EntityManager的find()与getReference()的区别
查看>>
SQL语句学习之路9
查看>>
夏普能否依靠IGZO显示屏技术改变“命运”
查看>>
MySQL 5.7权限的介绍
查看>>
LVS原理详解
查看>>
URLRewrite 研究
查看>>
jdk分析工具:jps和jstack
查看>>
sql性能优化总结
查看>>
windows 7 使用注册表创建影子账户和隐藏账户
查看>>
一个有用的python装饰器 -- 为执行程序加锁
查看>>
linux shell
查看>>
xfs文件系统优化
查看>>
eclipse.ini参数的含义和设置
查看>>
VirtualBox中常用的网络设置
查看>>
用 GetEnvironmentVariable 获取常用系统环境变量
查看>>