Partager via


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

TypeName

SecurityRuleSetLevel2MethodsShouldNotBeProtectedWithLinkDemands

CheckId

CA2135

Catégorie

Microsoft.Security

Modification avec rupture

Oui

Cause

Une classe ou un membre de classe utilise un LinkDemand dans une application qui utilise une sécurité de niveau 2.

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 mettre en vigueur 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 résoudre une violation de cette règle, supprimez le LinkDemand 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, le LinkDemand doit être supprimé et la méthode 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()
        {
        }
    }
}