Udostępnij za pośrednictwem


CA2135: Zestawy poziomu 2 nie powinny zawierać LinkDemands

TypeName

SecurityRuleSetLevel2MethodsShouldNotBeProtectedWithLinkDemands

CheckId

CA2135

Kategoria

Microsoft.Security

Zmiana kluczowa

Kluczowa

Przyczyna

Klasa lub element członkowski używa LinkDemand w aplikacji, która korzysta z zabezpieczeń na poziomie 2.

Opis reguły

LinkDemands są przestarzałe w zestawie reguł zabezpieczeń poziomu 2.Zamiast używania LinkDemands do wymuszenia zabezpieczeń w czasie kompilacji just-in-time (JIT), należy oznaczyć metody, typy i pola za pomocą atrybutu SecurityCriticalAttribute.

Jak naprawić naruszenia

Aby rozwiązać naruszenie tej reguły, usuń LinkDemand i oznacz typ lub element członkowski atrybutem SecurityCriticalAttribute.

Kiedy pominąć ostrzeżenia

Nie należy pomijać ostrzeżenia dotyczącego tej reguły.

Przykład

W poniższym przykładzie, LinkDemand powinno być usunięte, a metoda oznaczona 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()
        {
        }
    }
}