CA2135: Assemblys der Stufe 2 dürfen keine LinkDemands enthalten
TypeName |
SecurityRuleSetLevel2MethodsShouldNotBeProtectedWithLinkDemands |
CheckId |
CA2135 |
Kategorie |
Microsoft.Security |
Unterbrechende Änderung |
Breaking |
Ursache
Eine Klasse oder ein Klassenmember verwendet ein LinkDemand-Objekt in einer Anwendung, die Sicherheit der Ebene 2 verwendet.
Regelbeschreibung
LinkDemands sind im Sicherheitsregelsatz der Ebene 2 veraltet. Markieren Sie, statt LinkDemands zur Erzwingung von Sicherheit zur Just-In-Time (JIT)-Kompilierungszeit zu erzwingen, die Methoden, Typen und Felder mit dem SecurityCriticalAttribute-Attribut.
Behandeln von Verstößen
Um eine Verletzung dieser Regel zu korrigieren, entfernen Sie das LinkDemand-Feld, und markieren Sie den Typ oder Member mit dem SecurityCriticalAttribute-Attribut.
Wann sollten Warnungen unterdrückt werden?
Unterdrücken Sie keine Warnung dieser Regel.
Beispiel
Im folgenden Beispiel sollte LinkDemand und die mit dem SecurityCriticalAttribute-Attribut markierte Methode entfernt werden.
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()
{
}
}
}