CA2135: Zestawy poziomu 2 nie powinny zawierać LinkDemands
TypeName |
SecurityRuleSetLevel2MethodsShouldNotBeProtectedWithLinkDemands |
CheckId |
CA2135 |
Kategoria |
Microsoft.Security |
Zmiana kluczowa |
Kluczowa |
Przyczyna
Klasa lub element członkowski używa LinkDemand w aplikacji, która korzysta z zabezpieczeń na poziomie 2.
Opis reguły
LinkDemands są przestarzałe w zestawie reguł zabezpieczeń poziomu 2.Zamiast używania LinkDemands do wymuszenia zabezpieczeń w czasie kompilacji just-in-time (JIT), należy oznaczyć metody, typy i pola za pomocą atrybutu SecurityCriticalAttribute.
Jak naprawić naruszenia
Aby rozwiązać naruszenie tej reguły, usuń LinkDemand i oznacz typ lub element członkowski atrybutem SecurityCriticalAttribute.
Kiedy pominąć ostrzeżenia
Nie należy pomijać ostrzeżenia dotyczącego tej reguły.
Przykład
W poniższym przykładzie, LinkDemand powinno być usunięte, a metoda oznaczona atrybutem 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()
{
}
}
}