DynamicMethod.IsSecuritySafeCritical Propriété

Définition

Obtient une valeur qui indique si la méthode dynamique actuelle est critique sécurisée au niveau de confiance actuel, autrement dit si elle peut exécuter des opérations critiques et être accessible par du code transparent.Gets a value that indicates whether the current dynamic method is security-safe-critical at the current trust level; that is, whether it can perform critical operations and can be accessed by transparent code.

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

Valeur de propriété

true si la méthode dynamique est critique sécurisée au niveau de confiance actuel ; false si elle est critique de sécurité ou transparente.true if the dynamic method is security-safe-critical at the current trust level; false if it is security-critical or transparent.

Exceptions

La méthode dynamique n’a pas de corps de méthode.The dynamic method doesn't have a method body.

Remarques

Les propriétés IsSecurityCritical, IsSecuritySafeCriticalet IsSecurityTransparent signalent le niveau de transparence de la méthode dynamique, tel que déterminé par le common language runtime (CLR).The IsSecurityCritical, IsSecuritySafeCritical, and IsSecurityTransparent properties report the transparency level of the dynamic method as determined by the common language runtime (CLR). Les combinaisons de ces propriétés sont présentées dans le tableau suivant :The combinations of these properties are shown in the following table:

Niveau de sécuritéSecurity level EstCritiqueDeSécuritéIsSecurityCritical EstCritiqueSécuriséIsSecuritySafeCritical EstTransparentDeSécuritéIsSecurityTransparent
CritiqueCritical true false false
Critique sécuriséSafe critical true true false
TransparentTransparent false false true

L'utilisation de ces propriétés est beaucoup plus simple que d'examiner les annotations de sécurité d'un assembly et ses types, de vérifier le niveau de confiance actuel et de tenter de dupliquer les règles du runtime.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.

La transparence d’une méthode dynamique dépend du module auquel elle est associée.The transparency of a dynamic method depends on the module it is associated with. Si la méthode dynamique est associée à un type plutôt qu’à un module, sa transparence dépend du module qui contient le type.If the dynamic method is associated with a type rather than a module, its transparency depends on the module that contains the type. Les méthodes dynamiques n’ont pas d’annotations de sécurité. elles reçoivent donc la transparence par défaut pour le module associé.Dynamic methods do not have security annotations, so they are assigned the default transparency for the associated module.

  • Les méthodes dynamiques hébergées anonymement sont toujours transparentes, car le module fourni par le système qui les contient est transparent.Anonymously hosted dynamic methods are always transparent, because the system-provided module that contains them is transparent.

  • La transparence d’une méthode dynamique qui est associée à un assembly approuvé (autrement dit, un assembly avec nom fort qui est installé dans le Global Assembly Cache) est décrite dans le tableau suivant.The transparency of a dynamic method that is associated with a trusted assembly (that is, a strong-named assembly that is installed in the global assembly cache) is described in the following table.

    Annotation d’assemblyAssembly annotation Transparence de niveau 1Level 1 transparency Transparence de niveau 2Level 2 transparency
    Entièrement transparentFully transparent TransparentTransparent TransparentTransparent
    Entièrement critiqueFully critical CritiqueCritical CritiqueCritical
    Transparence mixteMixed transparency TransparentTransparent TransparentTransparent
    Indépendant de la sécuritéSecurity-agnostic Critique sécuriséSafe-critical CritiqueCritical

    Par exemple, si vous associez une méthode dynamique à un type qui se trouve dans mscorlib. dll, qui a une transparence mixte de niveau 2, la méthode dynamique est transparente et ne peut pas exécuter de code critique.For example, if you associate a dynamic method with a type that is in mscorlib.dll, which has level 2 mixed transparency, the dynamic method is transparent and cannot execute critical code. Pour plus d’informations sur les niveaux de transparence, consultez code transparent de sécurité, niveau 1 et code transparent de sécurité, niveau 2.For information about transparency levels, see Security-Transparent Code, Level 1 and Security-Transparent Code, Level 2.

    Notes

    L’Association d’une méthode dynamique à un module dans un assembly de niveau de confiance 1 qui est indépendant de la sécurité, telle que System. dll, n’autorise pas l’élévation de confiance.Associating a dynamic method with a module in a trusted level 1 assembly that is security-agnostic, such as System.dll, does not permit elevation of trust. Si le jeu d’autorisations du code qui appelle la méthode dynamique n’inclut pas le jeu d’autorisations de System. dll (autrement dit, la confiance totale), SecurityException est levée lorsque la méthode dynamique est appelée.If the grant set of the code that calls the dynamic method does not include the grant set of System.dll (that is, full trust), SecurityException is thrown when the dynamic method is called.

  • La transparence d’une méthode dynamique associée à un assembly d’un niveau de confiance partiel dépend de la façon dont l’assembly est chargé.The transparency of a dynamic method that is associated with a partially trusted assembly depends on how the assembly is loaded. Si l’assembly est chargé avec une confiance partielle (par exemple, dans un domaine d’application sandbox), le runtime ignore les annotations de sécurité de l’assembly.If the assembly is loaded with partial trust (for example, into a sandboxed application domain), the runtime ignores the security annotations of the assembly. L’assembly et tous ses types et membres, y compris les méthodes dynamiques, sont traités comme étant transparents.The assembly and all its types and members, including dynamic methods, are treated as transparent. Le runtime ne tient pas considération des annotations de sécurité uniquement si l’assembly de confiance partielle est chargé avec une confiance totale (par exemple, dans le domaine d’application par défaut d’une application de bureau).The runtime pays attention to security annotations only if the partial-trust assembly is loaded with full trust (for example, into the default application domain of a desktop application). Dans ce cas, le runtime assigne à la méthode dynamique la transparence par défaut pour les méthodes en fonction des annotations de l’assembly.In that case, the runtime assigns the dynamic method the default transparency for methods according to the assembly's annotations.

Pour plus d’informations sur l’émission et la transparence de la réflexion, consultez problèmes de sécurité dans l’émission de réflexion.For more information about reflection emit and transparency, see Security Issues in Reflection Emit. Pour plus d’informations sur la transparence, consultez modifications de sécurité.For information about transparency, see Security Changes.

S’applique à

Voir aussi