驗證檢視狀態 MAC 失敗。如果此應用程式由網路場或群集承載,請確保 配置指定了相同的 validationKey 和驗證演算法。不能在群集中使用 AutoGenerate
阿新 • • 發佈:2019-01-03
當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="提交" />