ページで Viewstate の読み込みの問題に直面しています。
ページには、管理者および非管理者ユーザーにログインするためのログイン機能があります。管理者以外のユーザーがページにログインし、自動ポストバックが有効になっているチェックボックスをクリックすると、奇妙な動作が発生します。(エラーの詳細は以下に記載されています)
後で、左側のナビゲーションパネル(リンクをホストする)でそれを見つけました
サイドバーは下図のようなものです
Security
---------
Link1
Link2
Link3
Configuration
---------
Link1
Link2
「構成」セクションの下にそれ以上のものがある場合、この例外がスローされます。リンクは、Page_Load に対するユーザーの権限に基づいて (完全なリストから) 動的に削除されます。
この種の問題を追跡するにはどうすればよいですか? Visual Studio ですべての例外を有効にしましたが、どのコントロールがこの問題を引き起こしているかを確認するのに問題はありませんか?
ビューステートの読み込みに失敗しました。ビューステートが読み込まれるコントロール ツリーは、前の要求でビューステートを保存するために使用されたコントロール ツリーと一致する必要があります。たとえば、コントロールを動的に追加する場合、ポストバック中に追加されたコントロールは、最初のリクエスト中に追加されたコントロールのタイプと位置と一致する必要があります。
[HttpException (0x80004005): Failed to load viewstate. The control tree into which viewstate is being loaded must match the control tree that was used to save viewstate during the previous request. For example, when adding controls dynamically, the controls added during a post-back must match the type and position of the controls added during the initial request.]
System.Web.UI.Control.LoadViewStateRecursive(Object savedState) +380
System.Web.UI.Control.LoadChildViewStateByIndex(ArrayList childState) +144
System.Web.UI.Control.LoadViewStateRecursive(Object savedState) +214
System.Web.UI.Control.LoadChildViewStateByIndex(ArrayList childState) +144
System.Web.UI.Control.LoadViewStateRecursive(Object savedState) +214
System.Web.UI.Control.LoadChildViewStateByIndex(ArrayList childState) +144
System.Web.UI.Control.LoadViewStateRecursive(Object savedState) +214
System.Web.UI.Page.LoadAllState() +464
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +1729