次の方法で共有


許可されるアクセス許可セットの計算

重要 :重要

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

共通言語ランタイムは、関連する各ポリシー レベルに含まれるコード グループ階層構造を調べることによって、アプリケーション ドメインおよびアセンブリに許可されるアクセス許可セットを計算します。 アプリケーション ドメインの場合、関連するポリシー レベルはエンタープライズ、マシン、およびユーザーです。 アセンブリの場合は、関連するポリシー レベルはエンタープライズ、マシン、ユーザー、およびアプリケーション ドメインです。

ランタイムは、許可されるアクセス許可セットを次の手順で計算します。

  1. 関連する各ポリシー レベルについて、証拠により提示される識別情報を使用して、コードが属するコード グループを判断します。 コードがいずれかのグループのメンバーである場合、そのグループはコードに一致していると言えます。

    この一致の検索は、すべてのコード グループに対して、コード グループ階層構造の最上位から開始されます。 ランタイムは階層構造内の各レベルを検索します。親グループに一致するグループが見つかった場合は、その子グループも検索されます。

  2. 階層構造内で一致するグループをすべて識別すると、一致した各コード グループに関連付けられているアクセス許可を結合してそれらの和集合を求め、結果として、そのポリシー レベルで許可されるアクセス許可セットを得ます。

    ただし、Exclusive 属性または LevelFinal 属性がコード グループに適用されている場合は、許可されるアクセス許可セットの計算方法が異なります。 詳細については、「コード グループ属性」を参照してください。

  3. ランタイムは階層構造の検索を繰り返し、各ポリシー レベルで許可されるアクセス許可セットの積集合を求めて、アプリケーション ドメインまたはアセンブリに許可されるアクセス許可セットを計算します。 最終的なアクセス許可セットには、すべてのポリシー レベルで許可されるアクセス許可だけが含まれます。

コード グループ階層構造を次の図に示します。この構造では、Microsoft® Money が All code、Microsoft (発行元)、Local Internet (ゾーン)、および Microsoft Money (名前) という 4 つのコード グループのメンバーとなっています。 ポリシー レベル (マシン、ユーザー、またはアプリケーション ドメイン) で許可されるアクセス許可セットは、それぞれのレベルの各コード グループに関連付けられた名前付きアクセス許可セットを加算した結果 (和集合) になります。

コード グループの階層構造

コード グループ階層

参照

概念

コード グループ属性

その他の技術情報

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