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