【问题标题】:Validation of viewstate MAC failed in asp.net在 asp.net 中验证视图状态 MAC 失败
【发布时间】:2014-09-04 04:09:41
【问题描述】:

视图状态 MAC 验证失败。如果此应用程序由 Web Farm 或集群托管,请确保配置指定相同的验证密钥和验证算法。自动生成不能在集群中使用。

说明:在执行当前 Web 请求期间发生未处理的异常。请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息。

异常详情:System.Web.HttpException: Validation of viewstate MAC failed. If this application is hosted by a Web Farm or cluster, ensure that <machineKey> configuration specifies the same validationKey and validation algorithm. AutoGenerate cannot be used in a cluster.

堆栈跟踪:

[ViewStateException:无效的视图状态。客户端 IP:::1 端口:49760 路径:/destination.aspx 用户代理:Mozilla/5.0(Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1985.143 Safari/537.36 视图状态: ZDL/pAdYwlwxR8MjOlSwmfHswlju0QqWbFMzwqlou/bDqNjXlwYPnwAafMjAAnvPKVDZ6pGzaQd9ROUxtdS3qg0FIf5H6MxrEcFerM99PRw=]

[HttpException (0x80004005):视图状态 MAC 验证失败。如果 此应用程序由 Web Farm 或集群托管,请确保 配置指定相同的validationKey和 验证算法。 AutoGenerate 不能在集群中使用。

【问题讨论】:

标签: asp.net validation


【解决方案1】:

从 ASP.NET 4.5.2 开始,运行时强制 EnableViewStateMac=true。 如果应用程序将 设置为指令或配置设置,则运行时会忽略它并假装开发人员已写入“true”。 他们这样做的主要原因 - 不安全。

【讨论】:

    【解决方案2】:

    Wrote this code in webconfg.

    视图状态 MAC 验证失败。如果此应用程序由 Web 场或集群托管,请确保配置指定相同的验证密钥和验证算法。 AutoGenerate 不能在集群中使用。

    <pages validateRequest="false" enableEventValidation="false" viewStateEncryptionMode="Never" enableViewStateMac="false"></pages>
    

    <machineKey validation="SHA1" validationKey="A1B2C3D4E5F6F6E5D4C3B2A1A1B2C3D4E5F6F6E5D4C3B2A1A1B2C3D4E5F6F6E5D4C3B2A1A1B2C3D4E5F6F6E5D4C3B2A1A1B2C3D4E5F6F6E5D4C3B2A1B2C3D4E5" decryption="Auto" decryptionKey="A1B2C3D4E5F6F6E5D4C3B2A1A1B2C3D4E5F6F6E5D4C3B2A1"/>
    

    Reference details

    【讨论】:

    • 请提供简明的解释来改进这个答案。我认为您需要强调配置更改应应用于所有实例。
    • 这个答案很糟糕。事实上,链接的知识库文章明确指出,您应该永远按照这个答案告诉您的去做。
    猜你喜欢
    • 1970-01-01
    • 2011-08-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-24
    • 2011-12-18
    相关资源
    最近更新 更多