Freigeben über


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