次の方法で共有


与えるアクセス許可の決定

重要 :重要

.NET Framework Version 4 では、共通言語ランタイム (CLR: Common Language Runtime) がコンピューターにセキュリティ ポリシーを提供しなくなります。Microsoft では、CLR のセキュリティ ポリシーの代替として、Windows のソフトウェアの制限のポリシーを使用することをお勧めしています。このトピックの情報は、.NET Framework Version 3.5 以前に適用され、Version 4 以降には適用されません。この変更およびその他の変更の詳細については、「.NET Framework 4 におけるセキュリティの変更点」を参照してください。

アプリケーション ドメインの場合は、許可されるアクセス許可セットがそのまま与えられるアクセス許可セットになります。

アセンブリの場合は、アセンブリの読み込み時に共通言語ランタイムがその他の要素も考慮して、そのアセンブリに与えるアクセス許可セットを決定します。 アセンブリには、コードが必要とするアクセス許可を指定する宣言セキュリティ要求を含むことができます。 コードが要求できるアクセス許可セットの説明を次の表に示します。

アクセス許可セット

説明

必須

コードを実行するために必要な最小限のアクセス許可セットを指定します。

省略可能

最小限のアクセス許可セットに加えて、コードが要求するアクセス許可セットを識別します。 これによって、最小限のセットまたはオプションのセットで識別されないすべてのアクセス許可が暗黙に拒否されます。

Refused

コードに与えることができないアクセス許可セットを指定します。

3 つのアクセス許可要求がいずれも含まれていない場合、そのアセンブリには、ポリシーが許可したアクセス許可セットがそのまま与えられます。 しかし、3 つのアクセス許可要求のいずれか 1 つでも含んでいる場合は、ランタイムは、要求されたアクセス許可セットについて次の手順で判断します。

  1. ランタイムは、アセンブリに許可されるアクセス許可を計算し、そのアセンブリにコードを実行するために必要なアクセス許可があるかどうかを確認します。 実行に必要なアクセス許可がない場合、ランタイムが PolicyException をスローし、そのコードは実行できません。

  2. 要求されたアクセス許可セットが、許可されるアクセス許可セットのサブセットかどうかを調べます。 サブセットでない場合、ランタイムが PolicyException をスローし、そのコードは実行できません。

  3. 要求されたオプションのアクセス許可と、許可されるアクセス許可との積集合を求めます。 オプションのアクセス許可が要求されない場合は、オプションの PermissionSet は FullTrust であると見なされます。

  4. 手順 3. の結果と、要求された最小限のアクセス許可との和集合を求めます。

  5. 最後に、手順 4. の結果から、拒否されるアクセス許可セットを減算します。

参照

参照

PolicyException

その他の技術情報

セキュリティ ポリシーの管理