英語で読む

次の方法で共有


Type.IsSecurityCritical プロパティ

定義

現在の型が現在の信頼レベルでセキュリティ クリティカルまたはセキュリティ セーフ クリティカルであり、重要な操作を実行できるかどうかを示す値を取得します。

C#
public virtual bool IsSecurityCritical { get; }

プロパティ値

true 現在の種類が現在の信頼レベルでセキュリティ クリティカルまたはセキュリティ セーフ クリティカルの場合。 false 透明の場合は 。

注釈

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

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

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

重要

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

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

適用対象

製品 バージョン
.NET Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9, 10
.NET Framework 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0, 2.1

こちらもご覧ください