ASP.NET Post页面及验证视图状态MAC失败问题的解决办法
来源:互联网 发布:意林小小姐阅读软件 编辑:程序博客网 时间:2024/05/16 05:30
修改当前页面的@page属性,添加enableEventValidation="false" enableViewStateMac="false"
或者在web.config里添加<pages enableEventValidation="false" enableViewStateMac="false" />
当然还可以在web.config里加入:
<pages enableEventValidation= "false " viewStateEncryptionMode = "Never " />
下面还有一种说法,没试过:
如果你的Asp.Net程序执行时碰到这种错误:“验证视图状态 MAC 失败。如果此应用程序由网络场或群集承载,请确保 <machineKey> 配置指定了相同的 validationKey 和验证算法。不能在群集中使用 AutoGenerate。”那么说明你没有让你的应用程序使用统一的machineKey,那么machineKey的作用是什么呢?按照MSDN的标准说法:“对密钥进行配置,以便将其用于对 Forms 身份验证 Cookie 数据和视图状态数据进行加密和解密,并将其用于对进程外会话状态标识进行验证。”也就是说Asp.Net的很多加密,都是依赖于machineKey里面的值,例如Forms 身份验证 Cookie、ViewState的加密。默认情况下,Asp.Net的配置是自己动态生成,如果单台服务器当然没问题,但是如果多台服务器负载均衡,machineKey还采用动态生成的方式,每台服务器上的machinekey值不一致,就导致加密出来的结果也不一致,不能共享验证和ViewState,所以对于多台服务器负载均衡的情况,一定要在每台站点配置相同的machineKey。
machineKey生成的算法:
validationKey = CreateKey(20);
decryptionKey = CreateKey(24);
protected string CreateKey(int len)
{
byte[] bytes = new byte[len];
new RNGCryptoServiceProvider().GetBytes(bytes);
StringBuilder sb = new StringBuilder();
for(int i = 0; i < bytes.Length; i++)
{
sb.Append(string.Format("{0:X2}",bytes[i]));
}
return sb.ToString();
}
附参考的matchineKey配置:
<?xml version="1.0"?>
<configuration>
<system.web>
<machineKey validationKey="3FF1E929BC0534950B0920A7B59FA698BD02DFE8" decryptionKey="280450BB36319B474C996B506A95AEDF9B51211B1D2B7A77" decryption="3DES" validation="SHA1"/>
</system.web>
</configuration>
- ASP.NET Post页面及验证视图状态MAC失败问题正确的解决办法
- ASP.NET Post页面及验证视图状态MAC失败问题的解决办法
- ASP.NET Post页面及验证视图状态MAC失败问题的正确解决办法
- ASP.NET Post页面及验证视图状态MAC失败问题的正确解决办法
- ASP.NET Post页面及验证视图状态MAC失败问题的正确解决办法
- ASP.NET视图状态验证MAC失败 解决办法
- 验证视图状态MAC失败问题正确的解决办法
- 验证视图状态MAC失败的解决办法
- 验证视图状态MAC失败的解决办法
- 验证视图状态MAC失败的解决办法
- 验证视图状态 MAC 失败的解决办法
- 验证视图状态 MAC 失败的解决办法
- 验证视图状态 MAC 失败的解决办法
- 验证视图状态 MAC 失败的解决办法
- 验证视图状态 MAC 失败的解决办法
- asp.net错误:验证视图状态 MAC 失败。
- ASP.NET验证视图状态MAC失败问题分析与解决
- 验证视图状态 MAC 失败错误解决办法
- SQL2005中大数据量检索的分页
- struts2-准备开发环境
- jxl.jar基础——导出数据库信息
- 点一下Jtable中的行,数据自动的按顺序添加到指定的textarea中
- IDE中debug 输出
- ASP.NET Post页面及验证视图状态MAC失败问题的解决办法
- safari 3.1 GDI模式渲染解决字体发虚
- 为没有源码的程序集添加强名称
- href定位
- Wince在进程控制程序里的解决办法 error LNK2019错误解决办法
- BDC学习笔记
- Ext中如何使用正则表达式?有分奖哦~~
- 2年的网站经验
- myeclipse快捷键