CA2143 : Les méthodes transparentes ne doivent pas utiliser de demandes de sécurité
Élément | Valeur |
---|---|
ID de la règle | CA2143 |
Category | Microsoft.Security |
Modification avec rupture | Rupture |
Cause
Une méthode ou un type transparent est marqué de manière déclarative avec une demande System.Security.Permissions.SecurityAction.Demand
ou la méthode appelle la méthode System.Security.CodeAccessPermission.Demand.
Notes
Cette règle est déconseillée. Pour plus d’informations, consultez Règles dépréciées.
Description de la règle
Le code transparent de sécurité ne doit pas être responsable de la vérification de la sécurité d’une opération. Par conséquent, il ne doit pas demander d’autorisations. Le code transparent de sécurité doit utiliser des demandes complètes pour prendre des décisions de sécurité et le code critique sécurisé ne doit pas dépendre du code transparent pour l’exécution de ces demandes. Tout code qui effectue des vérifications de sécurité, comme les exigences de sécurité, doit être critique pour la sécurité.
Comment corriger les violations
En général, pour corriger une violation de cette règle, vous pouvez marquer la méthode avec l’attribut SecuritySafeCriticalAttribute . Vous pouvez également supprimer la demande.
Quand supprimer les avertissements
Ne supprimez aucun avertissement de cette règle.
Exemple
La règle se classe sur le code suivant, car une méthode transparente crée une demande de sécurité déclarative.
using System;
using System.Security;
using System.Security.Permissions;
namespace TransparencyWarningsDemo
{
public class TransparentMethodDemandClass
{
// CA2142 violation - transparent code using a Demand. This can be fixed by making the method safe critical.
[PermissionSet(SecurityAction.Demand, Unrestricted = true)]
public void TransparentMethod()
{
}
}
}
Voir aussi
CA2142 : Le code transparent ne doit pas être protégé avec des LinkDemands
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour