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