次の方法で共有


DynamicMethod.IsSecuritySafeCritical プロパティ

定義

現在の動的メソッドが現在の信頼レベルでセキュリティ セーフ クリティカルであるかどうか、つまり、重要な操作を実行でき、透過的なコードからアクセスできるかどうかを示す値を取得します。

public:
 virtual property bool IsSecuritySafeCritical { bool get(); };
public override bool IsSecuritySafeCritical { get; }
member this.IsSecuritySafeCritical : bool
Public Overrides ReadOnly Property IsSecuritySafeCritical As Boolean

プロパティ値

現在の動的メソッドが現在の信頼レベルでセキュリティ セーフ クリティカルである場合は true。現在の型がセキュリティ クリティカルまたは透過的な場合は false

例外

動的メソッドにメソッド本体がありません。

注釈

IsSecuritySafeCritical、および プロパティはIsSecurityCriticalIsSecurityTransparent共通言語ランタイム (CLR) によって決定される動的メソッドの透過性レベルを報告します。 これらのプロパティの組み合わせを次の表に示します。

セキュリティ レベル IsSecurityCritical IsSecuritySafeCritical IsSecurityTransparent
重大 true false false
セーフ クリティカル true true false
透明 false false true

これらのプロパティを使用する方が、アセンブリとその型のセキュリティの注釈を調べたり、現在の信頼レベルを確認したり、ランタイムの規則を複製したりするより、はるかに簡単です。

動的メソッドの透過性は、関連付けられているモジュールによって異なります。 動的メソッドがモジュールではなく型に関連付けられている場合、その透過性は、その型を含むモジュールによって異なります。 動的メソッドにはセキュリティ注釈がないため、関連付けられているモジュールの既定の透過性が割り当てられます。

  • 匿名でホストされる動的メソッドは、それらを含むシステム提供のモジュールが透過的であるため、常に透過的です。

  • 信頼されたアセンブリ (つまり、グローバル アセンブリ キャッシュにインストールされている厳密な名前付きアセンブリ) に関連付けられている動的メソッドの透過性を次の表に示します。

    アセンブリ注釈 レベル 1 の透過性 レベル 2 の透過性
    完全に透明 透明 透明
    完全に重要 重大 重大
    混合透明度 透明 透明
    セキュリティに依存しない セーフ クリティカル 重大

    たとえば、動的メソッドを、レベル 2 の混合透過性を持つ mscorlib.dll 内の型に関連付けた場合、動的メソッドは透過的であり、重要なコードを実行できません。 透過性レベルの詳細については、「セキュリティ透過的コード、レベル 1、セキュリティ透過的コード、レベル 2」を参照してください。

    注意

    System.dll など、セキュリティに依存しない信頼されたレベル 1 アセンブリ内のモジュールに動的メソッドを関連付けることは、信頼の昇格を許可しません。 動的メソッドを呼び出すコードの許可セットに System.dll の許可セット (つまり、完全信頼) SecurityException が含まれていない場合は、動的メソッドが呼び出されたときにがスローされます。

  • 部分的に信頼されたアセンブリに関連付けられている動的メソッドの透過性は、アセンブリの読み込み方法によって異なります。 アセンブリが部分信頼 (たとえば、セキュリティで保護されたアプリケーション ドメインに) 読み込まれる場合、ランタイムはアセンブリのセキュリティ注釈を無視します。 アセンブリとそのすべての型とメンバー (動的メソッドを含む) は、透過的として扱われます。 ランタイムは、部分信頼アセンブリが完全信頼 (デスクトップ アプリケーションの既定のアプリケーション ドメインなど) で読み込まれている場合にのみ、セキュリティ注釈に注意を払います。 その場合、ランタイムは動的メソッドに、アセンブリの注釈に従ってメソッドの既定の透過性を割り当てます。

リフレクション出力と透過性の詳細については、「 Reflection Emit のセキュリティの問題」を参照してください。 透明性の詳細については、「 セキュリティの変更」を参照してください。

適用対象

こちらもご覧ください