DynamicMethod.IsSecurityTransparent プロパティ
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
現在の動的メソッドが現在の信頼レベルで透過的であり、重要な操作を実行できないかどうかを示す値を取得します。
public:
virtual property bool IsSecurityTransparent { bool get(); };
public override bool IsSecurityTransparent { get; }
member this.IsSecurityTransparent : bool
Public Overrides ReadOnly Property IsSecurityTransparent As Boolean
プロパティ値
現在の動的メソッドが現在の信頼レベルで透過的セキュリティである場合は true
。それ以外の場合は false
。
例外
動的メソッドにメソッド本体がありません。
注釈
、IsSecuritySafeCritical、および プロパティはIsSecurityCritical、IsSecurityTransparent共通言語ランタイム (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 のセキュリティの問題」を参照してください。 透明性の詳細については、「 セキュリティの変更」を参照してください。
適用対象
こちらもご覧ください
.NET