CA2136: Elementy członkowskie nie powinny mieć skonfliktowanych adnotacji przezroczystości
Pozycja | Wartość |
---|---|
Ruleid | CA2136 |
Kategoria | Microsoft.Security |
Zmiana powodująca niezgodność | Kluczowa |
Przyczyna
Ta reguła jest uruchamiana, gdy element członkowski typu jest oznaczony atrybutem zabezpieczeń System.Security , który ma inną przezroczystość niż atrybut zabezpieczeń kontenera elementu członkowskiego.
Uwaga
Ta reguła została przestarzała. Aby uzyskać więcej informacji, zobacz Przestarzałe reguły.
Opis reguły
Atrybuty przezroczystości są stosowane od elementów kodu o większym zakresie do elementów o mniejszym zakresie. Atrybuty przezroczystości elementów kodu z większym zakresem mają pierwszeństwo przed atrybutami przejrzystości elementów kodu, które są zawarte w pierwszym elemencie. Na przykład klasa oznaczona atrybutem SecurityCriticalAttribute nie może zawierać metody oznaczonej atrybutem SecuritySafeCriticalAttribute .
Jak naprawić naruszenia
Aby naprawić to naruszenie, usuń atrybut zabezpieczeń z elementu kodu, który ma niższy zakres, lub zmień jego atrybut na taki sam jak zawierający element kodu.
Kiedy pomijać ostrzeżenia
Nie pomijaj ostrzeżeń z tej reguły.
Przykład
W poniższym przykładzie metoda jest oznaczona atrybutem SecuritySafeCriticalAttribute i jest składową klasy oznaczonej atrybutem SecurityCriticalAttribute . Należy usunąć atrybut bezpieczny zabezpieczeń.
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()
{
}
}
}
Opinia
https://aka.ms/ContentUserFeedback.
Dostępne już wkrótce: W 2024 r. będziemy stopniowo wycofywać zgłoszenia z serwisu GitHub jako mechanizm przesyłania opinii na temat zawartości i zastępować go nowym systemem opinii. Aby uzyskać więcej informacji, sprawdź:Prześlij i wyświetl opinię dla