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