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