Udostępnij za pośrednictwem


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()
        {
        }
    }
}