Udostępnij za pośrednictwem


CA2126: Typ żądań konsolidacji wymaga żądań dziedziczenia

Pozycja Wartość
Ruleid CA2126
Kategoria Microsoft.Security
Zmiana powodująca niezgodność Kluczowa

Przyczyna

Publiczny niezaziemowany typ jest chroniony za pomocą żądania łącza, ma metodę przesłoniętą, a ani typ, ani metoda nie jest chroniona za pomocą żądania dziedziczenia.

Uwaga

Ta reguła została przestarzała. Aby uzyskać więcej informacji, zobacz Przestarzałe reguły.

Opis reguły

Żądanie łącza dla metody lub jej typu deklarowania wymaga natychmiastowego wywołania metody, aby mieć określone uprawnienie. Żądanie dziedziczenia w metodzie wymaga zastąpienia metody, aby mieć określone uprawnienie. Żądanie dziedziczenia dla typu wymaga klasy pochodnej, aby mieć określone uprawnienie.

Jak naprawić naruszenia

Aby naprawić naruszenie tej reguły, należy zabezpieczyć typ lub metodę z żądaniem dziedziczenia dla tego samego uprawnienia co żądanie łącza.

Kiedy pomijać ostrzeżenia

Nie pomijaj ostrzeżeń dla tej reguły.

Przykład

W poniższym przykładzie pokazano typ, który narusza regułę.

using System;
using System.Security.Permissions;

namespace SecurityLibrary
{
   [EnvironmentPermission(SecurityAction.LinkDemand, Read = "PATH")]
   public class TypesWithLinkDemands
   {
      public virtual void UnsecuredMethod() {}

      [EnvironmentPermission(SecurityAction.InheritanceDemand, Read = "PATH")]
      public virtual void SecuredMethod() { }
   }
}

CA2108: Przejrzyj zabezpieczenia deklaratywne typów wartości

CA2112: Typy zabezpieczone nie powinny ujawniać pól

CA2122: Nie ujawniaj pośrednio metod żądaniami LinkDemand

CA2123: Przesłonięcia żądań konsolidacji powinny być identyczne z podstawowymi

Zobacz też