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 krytyczny dla bezpieczeństwa; oznacza to, czy może wykonywać operacje krytyczne i można uzyskiwać 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 krytyczny pod względem bezpieczeństwa; false
jeśli jest to krytyczne dla zabezpieczeń lub przezroczyste.
Wyjątki
Bieżący typ dynamiczny nie został utworzony przez wywołanie CreateType() metody .
Uwagi
Właściwości IsSecurityCritical, IsSecuritySafeCriticali IsSecurityTransparent raportują 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 w typach 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ć przy użyciu przeciążenia metody AppDomain.DefineDynamicAssembly(AssemblyName, AssemblyBuilderAccess, IEnumerable<CustomAttributeBuilder>), AppDomain.DefineDynamicAssembly(AssemblyName, AssemblyBuilderAccess, String, Boolean, IEnumerable<CustomAttributeBuilder>)lub AppDomain.DefineDynamicAssembly(AssemblyName, AssemblyBuilderAccess, String, Evidence, PermissionSet, PermissionSet, PermissionSet, Boolean, IEnumerable<CustomAttributeBuilder>) i określania atrybutów zabezpieczeń. Nie można podnieść poziomów zabezpieczeń, wykonując to czynności; oznacza to, że przezroczysty kod nie może emitować kodu krytycznego pod względem zabezpieczeń ani kodu o znaczeniu krytycznym dla bezpieczeństwa. Atrybuty muszą być określone podczas tworzenia zestawu dynamicznego lub nie obowiązują, dopóki zestaw nie zostanie zapisany na dysku i ponownie załadowany.
Uwaga
Dziedziczenie domyślne jest ograniczone do oceny przezroczystości w czasie wykonywania. 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 przejrzystoś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