CA2143: Transparente Methoden dürfen keine Sicherheitsanforderungen verwenden.
Element | Wert |
---|---|
RuleId | CA2143 |
Category | Microsoft.Security |
Unterbrechende Änderung | Breaking |
Ursache
Transparente Typ oder Methoden werden deklarativ mit einer System.Security.Permissions.SecurityAction.Demand
-Anforderung gekennzeichnet, oder die Methode ruft die System.Security.CodeAccessPermission.Demand-Methode auf.
Hinweis
Diese Regel wurde als veraltet markiert. Weitere Informationen finden Sie unter Veraltete Regeln.
Regelbeschreibung
Sicherheitstransparenter Code sollte nicht für das Überprüfen der Sicherheit einer Operation zuständig sein und sollte daher keine Berechtigungen fordern. Sicherheitstransparenter Code sollte mithilfe von vollständigen Anforderungen Sicherheitsentscheidungen fällen, und sicherheitskritischer Code sollte für die vollständige Anforderung nicht auf transparentem Code beruhen. Sämtlicher Code, der Sicherheitsüberprüfungen durchführt, also z. B. auch Sicherheitsanforderungen, sollte stattdessen sicherheitskritisch sein.
Behandeln von Verstößen
Um einen Verstoß gegen diese Regel zu beheben, markieren Sie die entsprechende Methode im Allgemeinen mit dem SecuritySafeCriticalAttribute-Attribut. Sie können die Anforderung auch entfernen.
Wann sollten Warnungen unterdrückt werden?
Unterdrücken Sie keine Warnung dieser Regel.
Beispiel
Die Regel wird beim folgenden Code ausgelöst, da eine transparente Methode eine deklarative Sicherheitsanforderungen stellt.
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()
{
}
}
}
Weitere Informationen
CA2142: Transparenter Code darf nicht mit LinkDemands geschützt werden.
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für