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()
{
}
}
}