Compartilhar via


CA2135: os assemblies de nível 2 não devem conter LinkDemands

TypeName

SecurityRuleSetLevel2MethodsShouldNotBeProtectedWithLinkDemands

CheckId

CA2135

Categoria

Microsoft.Security

Alteração Significativa

Quebra

Causa

Uma classe ou membro da classe estão usando LinkDemand em um aplicativo que esteja usando a segurança de nível 2.

Descrição da Regra

LinkDemands é preterido no conjunto de regras de segurança de nível 2.Em vez de usar LinkDemands para impor a segurança em tempo de compilação de (JIT) just-in-time, marcar os métodos, os tipos, e os campos com o atributo de SecurityCriticalAttribute .

Como Corrigir Violações

Para corrigir uma violação desta regra, remova LinkDemand e marcar o tipo ou membro com o atributo de SecurityCriticalAttribute .

Quando Suprimir Alertas

Não elimine um alerta desta regra.

Exemplo

No exemplo a seguir, LinkDemand deve ser removido e o método ser marcado com o atributo de 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()
        {
        }
    }
}