CA2135: Zestawy poziomu 2 nie powinny zawierać LinkDemands
Pozycja | Wartość |
---|---|
Ruleid | CA2135 |
Kategoria | Microsoft.Security |
Zmiana powodująca niezgodność | Kluczowa |
Przyczyna
Składowa klasy lub klasy używa SecurityAction klasy w aplikacji korzystającej z zabezpieczeń poziomu 2.
Uwaga
Ta reguła została przestarzała. Aby uzyskać więcej informacji, zobacz Przestarzałe reguły.
Opis reguły
LinkDemands są przestarzałe w zestawie reguł zabezpieczeń poziomu 2. Zamiast używać poleceń LinkDemands do wymuszania zabezpieczeń w czasie kompilacji just in time (JIT), oznacz metody, typy i pola za pomocą atrybutu SecurityCriticalAttribute .
Jak naprawić naruszenia
Aby naprawić naruszenie tej reguły, usuń SecurityAction element i oznacz typ lub element członkowski za pomocą atrybutu SecurityCriticalAttribute .
Kiedy pomijać ostrzeżenia
Nie pomijaj ostrzeżeń dla tej reguły.
Przykład
W poniższym przykładzie należy usunąć element SecurityAction i metodę oznaczoną atrybutem SecurityCriticalAttribute .
using System;
using System.Security;
using System.Security.Permissions;
namespace TransparencyWarningsDemo
{
public class MethodsProtectedWithLinkDemandsClass
{
// CA2135 violation - the LinkDemand should be removed, and the method marked [SecurityCritical] instead
[SecurityPermission(SecurityAction.LinkDemand, UnmanagedCode = true)]
public void ProtectedMethod()
{
}
}
}
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