ロール ベース セキュリティ チェック
ID オブジェクトとプリンシパル オブジェクトを定義したら、次のいずれかの方法で、これらのオブジェクトに対してセキュリティ チェックを実行できます。
強制セキュリティ チェックを使用する。
宣言セキュリティ チェックを使用する。
Principal オブジェクトに直接アクセスする。
マネージ コードは、強制セキュリティ チェックまたは宣言セキュリティ チェックを使用して、特定のプリンシパル オブジェクトが既知のロールのメンバーかどうか、既知の ID を持っているかどうか、または特定のロールにおける既知の ID を表すかどうかを調べることができます。 強制セキュリティまたは宣言セキュリティを使用してセキュリティ チェックを実行させるには、正しく構築された PrincipalPermission オブジェクトに対してセキュリティ確認要求が設定される必要があります。 セキュリティ チェックの実行中、共通言語ランタイムは呼び出し元のプリンシパル オブジェクトを調べて、その ID とロールが、確認要求されている PrincipalPermission によって表される ID とロールに一致するかどうかを判断します。 プリンシパル オブジェクトが一致しない場合は、SecurityException がスローされます。 調べられるのは現在のスレッドのプリンシパル オブジェクトだけです。PrincipalPermission クラスが原因で、コード アクセス許可の場合のようにスタック ウォークが発生することはありません。
また、プリンシパル オブジェクトの値に直接アクセスして、PrincipalPermission オブジェクトを使用せずにチェックを実行することもできます。 この場合は、単に現在のスレッドのプリンシパルの値を読み取るか、IsInRole メソッドを使用して承認を実行するだけです。