3

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

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

4

2 回答 2

7

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

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

<httpRuntime targetFramework="4.5" />

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

<machineKey compatibilityMode="Framework20SP1" />

希望这可以帮助。

于 2013-01-07T23:31:04.323 回答
-1

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

于 2016-02-18T09:29:51.120 回答