驗證視圖狀態 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="提交" />

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM