Udostępnij za pośrednictwem


Żądania dziedziczenia

Dziedziczenie wymagania stosowane do klasy mają inne znaczenie niż dziedziczenie wymagania stosowane do metody. Zapotrzebowanie dziedziczenie można umieścić na poziomie klasy w celu zapewnienia, że tylko kod z uprawnieniami określonego może dziedziczyć po klasie. Dziedziczenie wysiłek metody wymagają, że kod mają określone uprawnienie, aby zastąpić metodę.

Uwaga

Został wprowadzony nowy model przejrzystości w .NET Framework 4.Kod o przezroczystym poziomie bezpieczeństwa, poziom 2 Modelu identyfikuje bezpiecznego kodu z SecurityCriticalAttribute lub SecuritySafeCriticalAttribute atrybut.Kod krytyczne dla bezpieczeństwa wymaga zarówno wywoływania i dziedziczenia być w pełni zaufany.Dowolnego typu lub element członkowski, który dziedziczy typ zabezpieczeń krytycznych lub członek musi być istotne dla bezpieczeństwa lub safe krytyczne dla bezpieczeństwa.Zespoły, które używają starszych kod dostępu zabezpieczeń zasady (poziom 1) może wywołać typy krytyczne dla bezpieczeństwa na poziomie 2 i zaufanych członków, jeżeli są one zapełnione.Jednak typy na poziomie 2 i członków musi specjalnie zidentyfikować zapotrzebowanie dziedziczenie, ponieważ poziom 2 niejawny dziedziczenie zasad nie stosuje się do wywoływania poziomu 1.

Klasa InheritanceDemand

Dziedziczone popytu, stosowane do klasy skutkuje wymagających, że wszystkie klasy pochodzące od klasy nadrzędnej mają określone uprawnienie. Na przykład jeśli klasa b ma dziedziczą z klasy a i klasy a jest chroniony przez dziedziczenie popytu, następnie b musi otrzymać tego uprawnienia do uruchomienia. Jeśli klasy b udzielono tego uprawnienia i pochodzi od klasy A, następnie klasy c musi także mieć uprawnienie wymagana przez A, jeśli pochodzi od B. To żądanie mogą być stosowane jedynie w sposób deklaratywny.

Następujący kod w przykładzie wykorzystano dziedziczy żądanie dziedziczenie wymagają żadnego klasy, MyClass1 klasy musi mieć uprawnienia niestandardowe CustomPermissionAttribute. To uprawnienie jest hipotetyczny uprawnienia niestandardowe i nie istnieje w.NET Framework. Wniosek został złożony przez przekazanie CustomPermissionAttributeSecurityAction.InheritanceDemand wartość wyliczenia.

<CustomPermissionAttribute(SecurityAction.InheritanceDemand)> _
Public Class MyClass1
    Public Sub New()
    End Sub 
   
    Public Overridable Function ReadData() As String
        ' Access a custom resource.
    End Function
End Class    
[CustomPermissionAttribute(SecurityAction.InheritanceDemand)]
public class MyClass
{
    public MyClass()
    {    
    }   

    public virtual string ReadData()
    {
        // Access a custom resource.
    }
}

Metoda InheritanceDemand

Wprowadzanie do obrotu na zapotrzebowanie dziedziczenie statyczna metoda w klasie podstawowej nie ma wpływu na klas pochodnych ponieważ metody statyczne nie są powiązane relacją. Jednak umieszczenie dziedziczenie popytu na wszelkie niestatycznego metoda w klasie podstawowej ma taki sam efekt jak dziedziczenie popytu na klasie. Wszystkie metody w klasie pochodnej, łącznie z konstruktora dla klasy, muszą spełniać zapotrzebowanie dziedziczenia.

Zobacz też

Koncepcje

Żądania dotyczące zabezpieczeń

Tworzenie własnych uprawnień do dostępu kodu

Dodawanie obsługi zabezpieczeń deklaracyjnych

Inne zasoby

Rozszerzanie metadanych za pomocą atrybutów

Zabezpieczenia dostępu kodu