Sdílet prostřednictvím


CA2135: Sestavení úrovně 2 nesmějí obsahovat LinkDemands

TypeName

SecurityRuleSetLevel2MethodsShouldNotBeProtectedWithLinkDemands

CheckId

CA2135

Kategorie

Microsoft.Security

Narušující změna

Narušující

Příčina

Třída nebo člen třídy používá LinkDemand v aplikaci, která používá zabezpečení na úrovni 2.

Popis pravidla

LinkDemands se již nepoužívá v sadě pravidel zabezpečení úrovně 2.Namísto použití LinkDemands k vynucení zabezpečení v době kompilace JIT, označte metody, typy a pole pomocí atributu SecurityCriticalAttribute.

Jak vyřešit porušení

Pro nápravu porušení tohoto pravidla odeberte LinkDemand a označte typ nebo člen atributem SecurityCriticalAttribute.

Kdy potlačit upozornění

Nepotlačujte upozornění na toto pravidlo.

Příklad

V následujícím příkladu by měl být LinkDemand odstraněn a metoda by měla být označena atributem 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()
        {
        }
    }
}