CA2136 : Les membres ne doivent pas avoir d'annotations de transparence conflictuelles
Élément | Valeur |
---|---|
ID de la règle | CA2136 |
Category | Microsoft.Security |
Modification avec rupture | Rupture |
Cause
Cette règle se déclenche lorsqu’un membre de type est marqué avec un attribut de sécurité System.Security, qui a une transparence différente de l’attribut de sécurité d’un conteneur du membre.
Notes
Cette règle est déconseillée. Pour plus d’informations, consultez Règles dépréciées.
Description de la règle
Les attributs de transparence sont appliqués à partir d’éléments de code de plus grande portée à des éléments de plus petite portée. Les attributs de transparence d’éléments de code avec une plus grande portée sont prioritaires sur les attributs de transparence des éléments de code contenus dans le premier élément. Par exemple, une classe marquée avec l’attribut SecurityCriticalAttribute ne peut pas contenir de méthode marquée avec l’attribut SecuritySafeCriticalAttribute.
Comment corriger les violations
Pour corriger cette violation, supprimez l’attribut de sécurité de l’élément de code dont l’étendue est inférieure ou modifiez son attribut pour qu’il soit identique à l’élément de code contenant.
Quand supprimer les avertissements
Ne supprimez aucun avertissement de cette règle.
Exemple
Dans l’exemple suivant, une méthode est marquée avec l’attribut SecuritySafeCriticalAttribute et c’est un membre d’une classe marquée avec l’attribut SecurityCriticalAttribute. L’attribut de sécurité sécurisé doit être supprimé.
using System;
using System.Security;
namespace TransparencyWarningsDemo
{
[SecurityCritical]
public class CriticalClass
{
// CA2136 violation - this method is not really safe critical, since the larger scoped type annotation
// has precidence over the smaller scoped method annotation. This can be fixed by removing the
// SecuritySafeCritical attribute on this method
[SecuritySafeCritical]
public void SafeCriticalMethod()
{
}
}
}
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour