验证Viewstate错误

时间:2012-10-22 18:17:10

标签: c# asp.net

当我尝试在表单中调用OnClick时出现此错误

错误: Failed validation of viewstate MAC. If this application is hosted by a Web Farm or cluster, ensure that configuration specifies the same <machineKey> validationKey and validation algorithm. AutoGenerate can not be used in a cluster.

代码隐藏

<form runat="server" id="form1"> <asp:Button ID="btnImprimeBematech" runat="server" OnClick="btnImprimeBematech_OnClick" Text="Imprime Novo Bematech" /> </form>

我不明白因为其他人在StackOverflow中的帖子,一些解决方案是<Form>标签中的操作,但我的表单中没有action

我尝试将EnableViewStateMac="false" EnableSessionState="False" EnableViewState="false"放入我的<%@ Page,但仍然是同样的错误

1 个答案:

答案 0 :(得分:0)

网络农场中的所有计算机上的machineKey值必须相同。

链接:http://msdn2.microsoft.com/en-us/library/ms998288.aspx

您可以在所有页面上设置此属性,而不仅仅是一页

In web.config

<pages enableViewStateMac="false">

始终建议在web.config中指定加密和解密的自定义密钥。这是因为当您将EnableViewStateMac值设置为false时,您会将应用程序暴露给安全威胁。这是因为在这种情况下不会发生视图状态的验证。

<machineKey validationKey="<encryptionkey>" decryptionKey="<decryptionkey>" validation="SHA1" decryption="Auto"/>