CA2135 : Les assemblys de niveau 2 ne doivent pas contenir de LinkDemands

Élément Valeur
ID de la règle CA2135
Category Microsoft.Security
Modification avec rupture Rupture

Cause

Un membre de classe ou une classe utilise SecurityAction dans une application qui utilise la sécurité de niveau 2.

Notes

Cette règle est déconseillée. Pour plus d’informations, consultez Règles dépréciées.

Description de la règle

L’utilisation de LinkDemands est déconseillée dans l’ensemble de règles de sécurité de niveau 2. Au lieu d’utiliser LinkDemands pour implémenter la sécurité au moment de la compilation juste-à-temps (JIT), marquez les méthodes, types et champs avec l’attribut SecurityCriticalAttribute.

Comment corriger les violations

Pour corriger une violation de cette règle, supprimez SecurityAction et marquez le type ou le membre avec l’attribut SecurityCriticalAttribute.

Quand supprimer les avertissements

Ne supprimez aucun avertissement de cette règle.

Exemple

Dans l’exemple suivant, SecurityAction doit être supprimé et la méthode doit être marquée avec l’attribut 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()
        {
        }
    }
}