英語で読む

次の方法で共有


Type.IsSecuritySafeCritical プロパティ

定義

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

C#
public virtual bool IsSecuritySafeCritical { get; }

プロパティ値

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

注釈

IsSecuritySafeCritical、および IsSecurityTransparent の各プロパティはIsSecurityCritical、共通言語ランタイム (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

こちらもご覧ください