【问题标题】:How to decode ASP.NET 4.5 ViewState如何解码 ASP.NET 4.5 ViewState
【发布时间】:2016-08-10 08:18:35
【问题描述】:

我们最近将网站迁移到 .NET 4.5,其中一项更改是将 targetFramework="4.5" 添加到 httpRuntime 以选择加入 ASP.NET 4.5 行为。在我们尝试在本地重现一些异常之前,一切都按预期工作。在升级之前,我们能够使用诸如http://www.binaryfortress.com/ASPNET-ViewState-Helper/ 之类的视图状态解码器来查看存储在视图状态中的值。但是,这似乎不再可能了,视图状态似乎在每个页面请求上都使用随机密钥加密(每次都更改)。

那么,有人知道在 ASP.NET 4.5 中正确解密/解码视图状态的步骤吗?

【问题讨论】:

    标签: viewstate asp.net-4.5


    【解决方案1】:

    自 ASP.NET 4 以来,.NET 4.5 中的加密方法发生了巨大变化。此博客条目作为一个很好的概述:Cryptographic Improvements in ASP.NET 4.5, pt. 2

    当您更新您的 Web.config 文件以具有以下标记时:

    <httpRuntime targetFramework="4.5" />
    

    这开启了 ASP.NET 4.5 的新加密功能。您可以通过将machineKey 元素添加到您的配置来显式关闭此特定于 ASP.NET 4.5 的视图状态编码逻辑:

    <machineKey compatibilityMode="Framework20SP1" />
    

    希望这会有所帮助。

    【讨论】:

    • 感谢您的解释,我希望有一些方法可以解码 4.5 加密的视图状态,因为我们无法重现异常。
    • 无论如何都感谢您 - 该标签确实允许 ASP.NET ViewState Helper 与 .NET v4.5.x 网站一起使用。便于调试并通常找出视图状态中的内容
    【解决方案2】:

    您可以在适当的 指令中将 ViewStateEncryptionMode 设置为“从不”。

    【讨论】:

    • 问题指定 .NET 4.5 并且您提出的内容不适用于 .NET 4.5
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-26
    • 1970-01-01
    • 2011-01-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多