プリンシパル オブジェクトの置き換え
更新 : 2007 年 11 月
認証サービスを提供するアプリケーションは、特定のスレッドについて Principal オブジェクトを置換できる必要があります。さらに、Principal オブジェクトを置換する機能をセキュリティ システムで保護する必要があります。これは、悪意を持ってアタッチされた不正な Principal オブジェクトが偽の ID やロールを提示することにより、アプリケーションのセキュリティが侵害される可能性があるためです。このため、Principal オブジェクトを置き換える能力が要求されるアプリケーションには、プリンシパルの制御のために System.Security.Permissions.SecurityPermission オブジェクトを与える必要があります。ただし、ロール ベースのセキュリティ チェックを行うときや Principal オブジェクトを作成するときには、この許可は必要ありません。
現在の Principal オブジェクトは、次のタスクを実行することによって置き換えることができます。
通常は認証の実行後に、置換する Principal オブジェクト、および関連付けられた Identity オブジェクトを作成します。
新しい Principal オブジェクトを呼び出しコンテキストに結合するコード例を次に示します。
Thread.CurrentPrincipal = principalObject;
Thread.CurrentPrincipal = principalObject