3

最近、サイトを .NET 4.5 に移行しました。変更の 1 つは、targetFramework="4.5" を httpRuntime に追加して、ASP.NET 4.5 の動作を選択することでした。例外をローカルで再現しようとするまで、すべてが期待どおりに機能していました。アップグレード前は、http://www.binaryfortress.com/ASPNET-ViewState-Helper/ などのビュー ステート デコーダーを使用して、ビューステートに格納されている値を確認できまし。ただし、これはもはや不可能のようです。viewstate は、ページ要求ごとにランダムなキーで暗号化されているようです (毎回変更されます)。

では、ASP.NET 4.5 でビューステートを適切に復号化/デコードする手順を知っている人はいますか?

4

2 に答える 2

7

.NET 4.5 での暗号化のアプローチは、ASP.NET 4 から劇的に変化しました。概要として、このブログ エントリ: 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" />

お役に立てれば。

于 2013-01-07T23:31:04.323 に答える
-1

適切な <%@ Page %> ディレクティブで ViewStateEncryptionMode を "Never" に設定できます。

于 2016-02-18T09:29:51.120 に答える