MethodBase.IsSecuritySafeCritical MethodBase.IsSecuritySafeCritical MethodBase.IsSecuritySafeCritical MethodBase.IsSecuritySafeCritical Property


現在のメソッドまたはコンストラクターが、現在の信頼レベルでセキュリティ セーフ クリティカルであり、重要な操作を実行でき、透過的なコードからアクセスできるかどうかを示す値を取得します。Gets a value that indicates whether the current method or constructor is security-safe-critical at the current trust level; that is, whether it can perform critical operations and can be accessed by transparent code.

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


メソッドまたはコンストラクターが、現在の信頼レベルでセキュリティ セーフ クリティカルである場合は true。セキュリティ クリティカルまたは透過的である場合は falsetrue if the method or constructor is security-safe-critical at the current trust level; false if it is security-critical or transparent.


IsSecurityCriticalIsSecuritySafeCritical、およびIsSecurityTransparentプロパティは、メソッドまたは共通言語ランタイム (CLR) によって決定される、現在の信頼レベルのコンス トラクターの透明度を報告します。The IsSecurityCritical, IsSecuritySafeCritical, and IsSecurityTransparent properties report the transparency level of the method or constructor at its current trust level, as determined by the common language runtime (CLR). これらのプロパティの組み合わせは、次の表に示します。The combinations of these properties are shown in the following table:

セキュリティ レベルSecurity level IsSecurityCriticalIsSecurityCritical IsSecuritySafeCriticalIsSecuritySafeCritical IsSecurityTransparentIsSecurityTransparent
重大Critical true false false
セーフ クリティカルSafe critical true true false
透明Transparent false false true

これらのプロパティを使用することは、アセンブリとその型およびメンバーのセキュリティの注釈を調べて、現在の信頼レベルをチェックおよびランタイムの規則を複製しようとよりずっとシンプルです。Using these properties is much simpler than examining the security annotations of an assembly and its types and members, checking the current trust level, and attempting to duplicate the runtime's rules.


部分的に信頼されたアセンブリでは、このプロパティの値は、アセンブリの現在の信頼レベルによって異なります。For partial-trust assemblies, the value of this property depends on the current trust level of the assembly. アセンブリが (たとえば、サンド ボックス アプリケーション ドメイン) に部分的に信頼されたアプリケーション ドメインに読み込まれている場合は、ランタイムは、アセンブリのセキュリティの注釈は無視されます。If the assembly is loaded into a partially trusted application domain (for example, into a sandboxed application domain), the runtime ignores the security annotations of the assembly. アセンブリとそのすべての型を透過的に処理されます。The assembly and all its types are treated as transparent. ランタイムは、そのアセンブリが (たとえば、デスクトップ アプリケーションの既定のアプリケーション ドメイン) に完全に信頼されたアプリケーション ドメインに読み込まれた場合にのみ、部分信頼アセンブリのセキュリティの注釈に注意を支払います。The runtime pays attention to the security annotations of a partial-trust assembly only when that assembly is loaded into a fully trusted application domain (for example, into the default application domain of a desktop application). これに対し、信頼されたアセンブリ (つまり、厳密な名前付きアセンブリをグローバル アセンブリ キャッシュにインストールされている) は、ため、現在の信頼レベルは常に完全に信頼されたに常に、アプリケーション ドメインの信頼レベルに関係なく、完全な信頼で読み込まれます。By contrast, a trusted assembly (that is, a strong-named assembly that is installed in the global assembly cache) is always loaded with full trust regardless of the trust level of the application domain, so its current trust level is always fully trusted. 使用して、アセンブリとアプリケーション ドメインの現在の信頼レベルを決定できます、Assembly.IsFullyTrustedAppDomain.IsFullyTrustedプロパティ。You can determine the current trust levels of assemblies and application domains by using the Assembly.IsFullyTrusted and AppDomain.IsFullyTrusted properties.

リフレクションと透過性の詳細については、次を参照してください。リフレクションに関するセキュリティの考慮事項します。For more information about reflection and transparency, see Security Considerations for Reflection. 透過性の詳細については、次を参照してください。セキュリティ変更します。For information about transparency, see Security Changes.