DynamicMethod.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żąca metoda dynamiczna ma krytyczne znaczenie dla zabezpieczeń na bieżącym poziomie zaufania; 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 metoda dynamiczna ma krytyczne znaczenie dla bezpieczeństwa na bieżącym poziomie zaufania; false
jeśli jest on krytyczny dla zabezpieczeń lub przezroczysty.
Wyjątki
Metoda dynamiczna nie ma treści metody.
Uwagi
Właściwości IsSecurityCritical, IsSecuritySafeCriticali IsSecurityTransparent zgłaszają poziom przezroczystości metody dynamicznej określony 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.
Przejrzystość metody dynamicznej zależy od skojarzonego z nim modułu. Jeśli metoda dynamiczna jest skojarzona z typem, a nie modułem, jego przezroczystość zależy od modułu zawierającego typ. Metody dynamiczne nie mają adnotacji zabezpieczeń, dlatego są przypisane domyślną przezroczystość skojarzonego modułu.
Metody dynamiczne hostowane anonimowo są zawsze przezroczyste, ponieważ dostarczany przez system moduł zawierający je jest niewidoczny.
Przejrzystość metody dynamicznej skojarzonej z zaufanym zestawem (czyli zestawem o silnej nazwie zainstalowanym w globalnej pamięci podręcznej zestawów) jest opisana w poniższej tabeli.
Adnotacja zestawu Przezroczystość poziomu 1 Przezroczystość poziomu 2 W pełni przezroczysty Przezroczyste Przezroczyste W pełni krytyczne Krytyczny Krytyczny Przezroczystość mieszana Przezroczyste Przezroczyste Zabezpieczenia niezależne od zabezpieczeń Bezpieczne krytyczne Krytyczne Jeśli na przykład skojarzysz metodę dynamiczną z typem, który znajduje się w mscorlib.dll, który ma poziom 2 przezroczystości mieszanej, metoda dynamiczna jest przezroczysta i nie może wykonać kodu krytycznego. Aby uzyskać informacje o poziomach przezroczystości, zobacz Kod przezroczysty zabezpieczeń, Poziom 1 i Kod przezroczysty zabezpieczeń, Poziom 2.
Uwaga
Kojarzenie metody dynamicznej z modułem w zestawie zaufanego poziomu 1, które jest niezależne od zabezpieczeń, na przykład System.dll, nie zezwala na podniesienie zaufania. Jeśli zestaw dotacji kodu, który wywołuje metodę dynamiczną, nie zawiera zestawu dotacji System.dll (czyli pełnego zaufania), SecurityException jest zgłaszany po wywołaniu metody dynamicznej.
Przejrzystość metody dynamicznej skojarzonej z częściowo zaufanym zestawem zależy od sposobu ładowania zestawu. Jeśli zestaw jest ładowany z częściowym zaufaniem (na przykład do domeny aplikacji w trybie piaskownicy), środowisko uruchomieniowe ignoruje adnotacje zabezpieczeń zestawu. Zestaw i wszystkie jego typy i elementy członkowskie, w tym metody dynamiczne, są traktowane jako przezroczyste. Środowisko uruchomieniowe zwraca uwagę na adnotacje zabezpieczeń tylko wtedy, gdy zestaw częściowo zaufania jest ładowany z pełnym zaufaniem (na przykład do domyślnej domeny aplikacji klasycznej). W takim przypadku środowisko uruchomieniowe przypisuje metodę dynamiczną domyślną przezroczystość metod zgodnie z adnotacjami zestawu.
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