• 验证视图状态 MAC 失败。如果此应用程序由网络场或群集承载,请确保 配置指定了相同的 validationKey 和验证算法。不能在群集中使用 AutoGenerate。


    当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:

    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、使用 <asp:Button runat="server" PostBackUrl="~/Register/DoRegister.aspx" Text="提交" />

  • 相关阅读:
    洛谷-P2430 严酷的训练
    Hackthebox网络不稳定的解决方案
    解压
    谷歌地图API密钥未授权利用
    关于读取heapdump踩的一个小坑
    RECON
    最近思考
    go get
    Js跳转
    Session
  • 原文地址:https://www.cnblogs.com/yizl/p/2855429.html
Copyright © 2020-2023  润新知