Share via


CA2126: Las peticiones de vínculos de tipos requieren peticiones de herencias

Elemento Valor
RuleId CA2126
Category Microsoft.Security
Cambio importante Problemático

Causa

Un tipo no sellado público está protegido con una demanda de vínculo, tiene un método reemplazable y ni el tipo ni el método están protegidos con una demanda de herencia.

Nota

Esta regla está en desuso. Para más información, consulte Reglas en desuso.

Descripción de la regla

Una demanda de vínculo en un método o su tipo declarativo requiere que el llamador inmediato del método tenga el permiso especificado. Una demanda de herencia en un método requiere que un método de invalidación tenga el permiso especificado. Una demanda de herencia en un tipo requiere que una clase derivada tenga el permiso especificado.

Cómo corregir infracciones

Para corregir una infracción de esta regla, proteja el tipo o el método con una demanda de herencia para el mismo permiso que la demanda de vínculo.

Cuándo suprimir las advertencias

No suprima las advertencias de esta regla.

Ejemplo

En el ejemplo siguiente se muestra un tipo que infringe la regla.

using System;
using System.Security.Permissions;

namespace SecurityLibrary
{
   [EnvironmentPermission(SecurityAction.LinkDemand, Read = "PATH")]
   public class TypesWithLinkDemands
   {
      public virtual void UnsecuredMethod() {}

      [EnvironmentPermission(SecurityAction.InheritanceDemand, Read = "PATH")]
      public virtual void SecuredMethod() { }
   }
}

CA2108: Revisar la seguridad declarativa en los tipos de valores

CA2112: Los tipos seguros no deben exponer campos

CA2122: No exponer indirectamente métodos con peticiones de vínculos

CA2123: Las peticiones de vínculos de invalidaciones deben ser idénticas a la base

Consulte también