CA2135: Los ensamblados de nivel 2 no deben contener LinkDemands

Elemento Valor
RuleId CA2135
Category Microsoft.Security
Cambio importante Problemático

Causa

Una clase o un miembro de una clase usan SecurityAction en una aplicación en la que se aplica la seguridad de nivel 2.

Nota

Esta regla está en desuso. Para más información, consulte Reglas en desuso.

Descripción de la regla

LinkDemands está desusado en el conjunto de reglas de seguridad de nivel 2. En lugar de utilizar LinkDemands para exigir la seguridad en el momento de la compilación Just-In-Time (JIT), marque los métodos, tipos y campos con el atributo SecurityCriticalAttribute.

Cómo corregir infracciones

Para corregir una infracción de esta regla, quite SecurityAction y marque el tipo o miembro con el atributo SecurityCriticalAttribute.

Cuándo suprimir las advertencias

No suprima las advertencias de esta regla.

Ejemplo

En el ejemplo siguiente, SecurityAction se debe quitar y el método debe marcarse con el atributo 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()
        {
        }
    }
}