Condividi tramite


CA2135: Gli assembly di livello 2 non devono contenere LinkDemands

TypeName

SecurityRuleSetLevel2MethodsShouldNotBeProtectedWithLinkDemands

CheckId

CA2135

Category

Microsoft.Security

Breaking Change

Breaking

Causa

Una classe o un membro della classe sta utilizzando un LinkDemand in un'applicazione che utilizza una sicurezza di livello 2.

Descrizione della regola

I LinkDemand sono deprecati nel set di regole per la sicurezza di livello 2.Anziché utilizzare LinkDemands per garantire la sicurezza nella compilazione JIT (Just-In-Time), contrassegnare i metodi, i tipi e campi con l'attributo SecurityCriticalAttribute.

Come correggere le violazioni

Per correggere una violazione di questa regola, rimuovere LinkDemand e contrassegnare il tipo o il membro con l'attributo SecurityCriticalAttribute.

Esclusione di avvisi

Non escludere un avviso da questa regola.

Esempio

Nell'esempio seguente, LinkDemand deve essere rimosso e il metodo contrassegnato con l'attributo 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()
        {
        }
    }
}