Żą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