TypeBuilder.IsSecurityCritical TypeBuilder.IsSecurityCritical TypeBuilder.IsSecurityCritical TypeBuilder.IsSecurityCritical Property

定義

現在の型がセキュリティ クリティカルまたはセキュリティ セーフ クリティカルであり、重要な操作を実行できるかどうかを示す値を取得します。Gets a value that indicates whether the current type is security-critical or security-safe-critical, and therefore can perform critical operations.

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

プロパティ値

現在の型がセキュリティ クリティカルまたはセキュリティ セーフ クリティカルである場合は true。現在の型が透過的な場合は falsetrue if the current type is security-critical or security-safe-critical; false if it is transparent.

例外

現在の動的な型は、CreateType() メソッドを呼び出して作成された型ではありません。The current dynamic type has not been created by calling the CreateType() method.

注釈

IsSecurityCriticalIsSecuritySafeCritical、およびIsSecurityTransparent共通言語ランタイム (CLR) によって決定されるプロパティが、型の透明度を報告します。The IsSecurityCritical, IsSecuritySafeCritical, and IsSecurityTransparent properties report the transparency level of the type, 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, checking the current trust level, and attempting to duplicate the runtime's rules.

ランタイムは、アセンブリ レベルの透過性の評価を開始します。The runtime begins evaluating transparency levels at the assembly. たとえば、動的アセンブリがセキュリティ クリティカルな場合は、型の注釈は無視され、すべての型がセキュリティ クリティカル。For example, if the dynamic assembly is security-critical, annotations on types are ignored, and all types are security-critical.

既定では、動的アセンブリは、出力したアセンブリの透明度を継承します。By default, a dynamic assembly inherits the transparency of the assembly that emits it. 使用して、この既定をオーバーライドすることができます、 AppDomain.DefineDynamicAssembly(AssemblyName, AssemblyBuilderAccess, IEnumerable<CustomAttributeBuilder>)AppDomain.DefineDynamicAssembly(AssemblyName, AssemblyBuilderAccess, String, Boolean, IEnumerable<CustomAttributeBuilder>)、またはAppDomain.DefineDynamicAssembly(AssemblyName, AssemblyBuilderAccess, String, Evidence, PermissionSet, PermissionSet, PermissionSet, Boolean, IEnumerable<CustomAttributeBuilder>)メソッドのオーバー ロードし、セキュリティ属性を指定します。You can override this default by using the AppDomain.DefineDynamicAssembly(AssemblyName, AssemblyBuilderAccess, IEnumerable<CustomAttributeBuilder>), AppDomain.DefineDynamicAssembly(AssemblyName, AssemblyBuilderAccess, String, Boolean, IEnumerable<CustomAttributeBuilder>), or AppDomain.DefineDynamicAssembly(AssemblyName, AssemblyBuilderAccess, String, Evidence, PermissionSet, PermissionSet, PermissionSet, Boolean, IEnumerable<CustomAttributeBuilder>) method overload and specifying security attributes. これを行ってセキュリティ レベルを引き上げることができません。つまり、透過的なコードは、セキュリティ クリティカルまたはセキュリティ セーフ クリティカル コードを生成することはできません。You cannot elevate security levels by doing this; that is, transparent code cannot emit security-critical or security-safe-critical code. 動的アセンブリを作成すると、または、有効になりません、アセンブリをディスクに保存され、再読み込みされるまでときに、属性を指定する必要があります。Attributes must be specified when the dynamic assembly is created, or they do not take effect until the assembly has been saved to disk and reloaded.

注意

既定の継承は、透明度のランタイムの評価に制限されます。Default inheritance is limited to the runtime's evaluation of transparency. 動的アセンブリには、属性は適用されません。No attributes are applied to the dynamic assembly. セキュリティ属性を追加する場合を自分でに適用する必要があります。If you want to add security attributes, you must apply them yourself.

リフレクションの詳細については出力と透明度を参照してくださいリフレクション出力のセキュリティ問題します。For more information about reflection emit and transparency, see Security Issues in Reflection Emit. 透過性の詳細については、次を参照してください。セキュリティ変更します。For information about transparency, see Security Changes.

適用対象

こちらもご覧ください