TypeBuilder.IsSecuritySafeCritical Właściwość
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Pobiera wartość wskazującą, czy bieżący typ jest bezpieczny dla bezpieczeństwa krytyczny; oznacza to, czy może wykonywać operacje krytyczne i można uzyskać do niego dostęp za pomocą przezroczystego kodu.
public:
virtual property bool IsSecuritySafeCritical { bool get(); };
public override bool IsSecuritySafeCritical { get; }
member this.IsSecuritySafeCritical : bool
Public Overrides ReadOnly Property IsSecuritySafeCritical As Boolean
Wartość właściwości
true
jeśli bieżący typ jest bezpieczny pod względem zabezpieczeń; false
jeśli jest on krytyczny dla zabezpieczeń lub przezroczysty.
Wyjątki
Bieżący typ dynamiczny nie został utworzony przez wywołanie CreateType() metody .
Uwagi
Właściwości IsSecurityCritical, IsSecuritySafeCriticali IsSecurityTransparent zgłaszają poziom przezroczystości typu określonego przez środowisko uruchomieniowe języka wspólnego (CLR). W poniższej tabeli przedstawiono kombinacje tych właściwości:
Poziom zabezpieczeń | IsSecurityCritical | IsSecuritySafeCritical | IsSecurityTransparent |
---|---|---|---|
Krytyczne | true |
false |
false |
Bezpieczne krytyczne | true |
true |
false |
Przezroczyste | false |
false |
true |
Użycie tych właściwości jest znacznie prostsze niż badanie adnotacji zabezpieczeń zestawu i jego typów, sprawdzanie bieżącego poziomu zaufania i próby zduplikowania reguł środowiska uruchomieniowego.
Środowisko uruchomieniowe rozpoczyna ocenianie poziomów przezroczystości w zestawie. Jeśli na przykład zestaw dynamiczny ma krytyczne znaczenie dla zabezpieczeń, adnotacje dotyczące typów są ignorowane, a wszystkie typy mają krytyczne znaczenie dla zabezpieczeń.
Domyślnie zestaw dynamiczny dziedziczy przezroczystość zestawu, który go emituje. Tę wartość domyślną można zastąpić za pomocą AppDomain.DefineDynamicAssembly(AssemblyName, AssemblyBuilderAccess, IEnumerable<CustomAttributeBuilder>)przeciążenia metody , lub AppDomain.DefineDynamicAssembly(AssemblyName, AssemblyBuilderAccess, String, Boolean, IEnumerable<CustomAttributeBuilder>)AppDomain.DefineDynamicAssembly(AssemblyName, AssemblyBuilderAccess, String, Evidence, PermissionSet, PermissionSet, PermissionSet, Boolean, IEnumerable<CustomAttributeBuilder>) i określania atrybutów zabezpieczeń. Nie można podnieść poziomu zabezpieczeń, wykonując to czynności; oznacza to, że przezroczysty kod nie może emitować kodu o znaczeniu krytycznym dla zabezpieczeń ani bezpiecznego krytycznie. Atrybuty muszą być określone po utworzeniu zestawu dynamicznego lub nie zostaną zastosowane do momentu zapisania zestawu na dysku i ponownego załadowania.
Uwaga
Dziedziczenie domyślne jest ograniczone do oceny przezroczystości środowiska uruchomieniowego. Do zestawu dynamicznego nie są stosowane żadne atrybuty. Jeśli chcesz dodać atrybuty zabezpieczeń, musisz zastosować je samodzielnie.
Aby uzyskać więcej informacji na temat emisji odbicia i przezroczystości, zobacz Problemy z zabezpieczeniami w emitowaniu odbicia. Aby uzyskać informacje o przejrzystości, zobacz Zmiany zabezpieczeń.
Dotyczy
Zobacz też
- IsSecurityCritical
- IsSecurityTransparent
- Problemy związane z zabezpieczeniami w emisji odbicia
- Zagadnienia dotyczące zabezpieczeń dla odbicia
- Zmiany zabezpieczeń w .NET Framework w wersji 4.0
- Kod przezroczysty pod względem zabezpieczeń, poziom 1
- Kod o przezroczystym poziomie bezpieczeństwa, poziom 2
Opinia
https://aka.ms/ContentUserFeedback.
Dostępne już wkrótce: W 2024 r. będziemy stopniowo wycofywać zgłoszenia z serwisu GitHub jako mechanizm przesyłania opinii na temat zawartości i zastępować go nowym systemem opinii. Aby uzyskać więcej informacji, sprawdź:Prześlij i wyświetl opinię dla