Compartir a través de


CA2135: Los ensamblados de nivel 2 no deben contener LinkDemands

Nombre de tipo

SecurityRuleSetLevel2MethodsShouldNotBeProtectedWithLinkDemands

Identificador de comprobación

CA2135

Categoría

Microsoft.Security

Cambio problemático

Ruptura

Motivo

Una clase o miembro de clase está utilizando LinkDemand en una aplicación que está utilizando seguridad de Nivel 2.

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 SecurityCriticalAttribute y marque el tipo o miembro con el atributo LinkDemand.

Cuándo suprimir advertencias

No suprima las advertencias de esta regla.

Ejemplo

En el ejemplo siguiente, LinkDemand se debería quitar, así como el método marcado 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()
        {
        }
    }
}