MethodBase.IsSecurityCritical プロパティ

定義

現在のメソッドまたはコンストラクターが現在の信頼レベルでセキュリティ クリティカルかセキュリティ セーフ クリティカルかを示す値を取得します。そのため、重要な操作を実行できます。

public:
 virtual property bool IsSecurityCritical { bool get(); };
public virtual bool IsSecurityCritical { get; }
member this.IsSecurityCritical : bool
Public Overridable ReadOnly Property IsSecurityCritical As Boolean

プロパティ値

true 現在のメソッドまたはコンストラクターが現在の信頼レベルでセキュリティ クリティカルまたはセキュリティ セーフ クリティカルである場合。透明な場合は false

注釈

IsSecurityCriticalIsSecuritySafeCritical、およびIsSecurityTransparentプロパティは、共通言語ランタイム (CLR) によって決定された、現在の信頼レベルでのメソッドまたはコンストラクターの透過性レベルを報告します。 これらのプロパティの組み合わせを次の表に示します。

セキュリティ レベル セキュリティ重要 IsSecuritySafeCritical IsSecurityTransparent
危うい true false false
セーフティクリティカル true true false
透明 false false true

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

Important

部分信頼アセンブリの場合、このプロパティの値はアセンブリの現在の信頼レベルによって異なります。 アセンブリが部分的に信頼されたアプリケーション ドメイン (サンドボックス アプリケーション ドメインなど) に読み込まれる場合、ランタイムはアセンブリのセキュリティ注釈を無視します。 アセンブリとそのすべての型は透過的として扱われます。 ランタイムは、アセンブリが完全に信頼されたアプリケーション ドメイン (デスクトップ アプリケーションの既定のアプリケーション ドメインなど) に読み込まれる場合にのみ、部分信頼アセンブリのセキュリティ注釈に注意を払います。 これに対し、信頼されたアセンブリ (つまり、グローバル アセンブリ キャッシュにインストールされている厳密な名前のアセンブリ) は、アプリケーション ドメインの信頼レベルに関係なく常に完全信頼で読み込まれるため、現在の信頼レベルは常に完全に信頼されます。 Assembly.IsFullyTrustedプロパティとAppDomain.IsFullyTrustedプロパティを使用して、アセンブリとアプリケーション ドメインの現在の信頼レベルを決定できます。

リフレクションと透明度の詳細については、「 リフレクションのセキュリティに関する考慮事項」を参照してください。 透明性の詳細については、「 セキュリティの変更」を参照してください。

適用対象

こちらもご覧ください