CA2136: I membri non devono avere annotazioni di trasparenza in conflitto
Articolo | Valore |
---|---|
ID regola | CA2136 |
Category | Microsoft.Security |
Modifica | Interruzione |
Causa
Questa regola viene attivata quando un membro del tipo è contrassegnato con un System.Security attributo di sicurezza con trasparenza diversa rispetto all'attributo di sicurezza di un contenitore del membro.
Nota
Questa regola è stata deprecata. Per altre informazioni, vedere Regole deprecate.
Descrizione regola
Gli attributi di trasparenza vengono applicati da elementi di codice con un ambito più ampio a elementi con ambito più ridotto. Gli attributi di trasparenza di elementi di codice che presentano un ambito più ampio hanno la precedenza su quelli contenuti nel primo elemento. Ad esempio, una classe contrassegnata con l'attributo SecurityCriticalAttribute non può contenere un metodo contrassegnato con l'attributo SecuritySafeCriticalAttribute .
Come correggere le violazioni
Per correggere questa violazione, rimuovere l'attributo di sicurezza dall'elemento di codice con ambito inferiore o modificarne l'attributo in modo che corrisponda all'elemento di codice contenitore.
Quando eliminare gli avvisi
Non eliminare gli avvisi da questa regola.
Esempio
Nell'esempio seguente un metodo viene contrassegnato con l'attributo SecuritySafeCriticalAttribute ed è un membro di una classe contrassegnata con l'attributo SecurityCriticalAttribute . L'attributo security safe deve essere rimosso.
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()
{
}
}
}
Commenti e suggerimenti
https://aka.ms/ContentUserFeedback.
Presto disponibile: Nel corso del 2024 verranno gradualmente disattivati i problemi di GitHub come meccanismo di feedback per il contenuto e ciò verrà sostituito con un nuovo sistema di feedback. Per altre informazioni, vedereInvia e visualizza il feedback per