小さな点--クラスに属性を付けます。これにより、適切な権限なしでページに移動するとすぐに、ページでセキュリティ例外が発生します。ユーザーがこのページを表示できないようにするには、URL を表示する前に資格情報を確認してください。クラスの属性は、通常のユーザーがそのクラスのコード行ほど実行しないという強力な保証です。
はい、これは次の理由から優れた手法です。
この属性は、適切な IPrincipal と IIdentity を使用してスレッド プリンシパルと HttpContext User オブジェクトが設定されている場合に機能します。(これはすべて、グローバル asax の要求認証イベントで発生します) これらのインターフェイスは Microsoft によって定義され、十分に文書化されており、MS オペレーティング システム上で実行されるあらゆるアプリケーションで利用できます。したがって、路上で手に入れた半分の能力のある開発者は、コードを読み始める前にこれに精通している可能性があります.
また、Thread の IPrincipal と IIdentity は Microsoft によって使用されているため (大規模なユーザー ベースを持つ大企業である可能性があります)、これは戦闘テスト済みのコードです。ばかげたことをすることもできますが、既存のパターンは、成功の落とし穴に陥るのに役立ちます。
一方、Session にカスタム オブジェクト、マジック クッキー、またはその他のトークンを配置する場合、メンテナンス開発者は、それがどのように機能するかをゼロから学び、悪用可能な脆弱性があるかどうかを確認する必要があります。