首页 | 新闻 | 网站建设 | 成功案例 | 服务项目 | 商业购买 | 编程技术 | 壁纸 | 休闲娱乐 | 下载专区 | 留言 | 论坛
 
您现在的位置:网站首页 > 编程技术 > ASP.NET
ASP.NET Post页面及验证视图状态MAC失败问题正确的解决办法
发布时间:2008-01-09  发布:奇景  关键字:ASP.NET Post页面 验证视图状态MAC失败 问题  阅读次数:388  【字号
今天做了个首页登陆的页面,是用Request.Form接收参数的
然后又做了个测试页面test.aspx,代码如下:
<body>
    <form id='form1' runat='server' method='post' action='Default.aspx'>
    <div>
        <input type='text' runat='server' id='Solution' value='(Local)' />
        <input type='text' runat='server' id='UserName' value='ricky' />
        <input type='text' runat='server' id='Password' value='111' />
        <input type='submit' runat='server' />
    </div>
    </form>
</body>
但是测试的时候发现test页面始终post到他自己
去掉runat标记则可以post到default.aspx,但去不到值
后来在IE里面查看源代码,发现html是这个样子的<form id='form1' method='post' action='test.aspx'>
也就是说生成的html里始终是post到自己的
知道问题就好办了
修改代码:
<form id='form1' runat='server' method='post' onsubmit='this.action='Default.aspx''>
一切OK,post到default.aspx了
然后又报错了
验证视图状态 MAC 失败。如果此应用程序由网络场或群集承载,请确保 <machineKey> 配置指定了相同的 validationKey 和验证算法。不能在群集中使用 AutoGenerate
去网上搜了搜,说问题的原因是asp.net的runat='server' 会对ViewStat进行MAC的加密,解决办法基本上就2个:
1:修改当前页面的@page属性,添加enableEventValidation='false' viewStateEncryptionMode='Never'
或者在web.config里添加<pages enableEventValidation='false' viewStateEncryptionMode='Never' />
2:在web.config里指定validationKey和验证算法
<machineKey validation='3DES' validationKey='319B474B1D2B7A87C996B280450BB36506A95AEDF9B51211' decryption='3DES' decryptionKey='280450BB36319B474C996B506A95AEDF9B51211B1D2B7A87' />
可是实际试下来发现没用,问题依旧
查了查资料发现加上实际测试,终于发现了真正的解决办法
修改当前页面的@page属性,添加enableEventValidation='false' enableViewStateMac='false'
或者在web.config里添加<pages enableEventValidation='false' enableViewStateMac='false' />

【收藏此页】【复制网址】【打印】【关闭】返回上一级
 ≡相关主题≡
 
分类导航
本类最新
本周热门

  版权声明 | 关于本站 | 常见问题 | 联系我们 | 网站管理 | 页面顶端
CopyRight ? QScms.cn All Rights Reserved 福州帝威荣信息技术有限公司研发 业务联系:0591-87522535
互联网许可证:闽ICP备08002627号 QQ:812188106 邮箱:qscms@yahoo.cn
Power By QsCMS V3.0  执行时间 : 0.031 秒 页面装载: