ASP.NET Web アプリに独自の認証システムを設定しました。ContentPlaceHolders を使用して、ユーザーがログインしているかどうかと表示権限に応じて、ユーザーに表示されるコンテンツを決定しています。現在、3 つの ContentPlaceHolders がすべてマスター ページで同じ場所を占めており、最初はすべて Visible="false" に設定されています。1 つはログアウトしたユーザー用、もう 1 つはログインしているが管理者によって検証されていないユーザー用、もう 1 つはログインして検証済みのユーザー用です。私のマスターページ分離コードの OnInit オーバーライドは、データベースを呼び出して、どのプレースホルダーを表示する必要があるかを決定します。
ContentPlaceHolder と Content (コンテンツ ページ内) はページのフェッチ中にマージされ、非表示のままのプレースホルダーはコンテンツ ページの関連する Content コントロールとマージされないという前提で作業しています。
このシステムのセキュリティが心配です。ページの初期化時に関連するプレースホルダーが見えない場合、認証されていないユーザーはコンテンツ ページのブロックに完全にアクセスできないと安全に想定できますか?
私は基本的にこれを使用して、AnonymousTemplate と LoggedInTemplate を使用してコンテンツを非表示および表示する ASP.NET の組み込み認証システムの機能を模倣しています (誰かが提案する前に、ASP.NET の組み込み認証を使用したくありません)。 .
これを処理するより良い方法はありますか、それともシステムが正常に動作するはずですか?