CodeAccessPermission.Assert Metoda
Definicja
Ważny
Niektóre informacje dotyczą produktów przedpremierowych, które mogą zostać znacznie zmodyfikowane przed premierą. Microsoft nie udziela żadnych gwarancji, ani wyraźnych, ani domniemanych, dotyczących informacji podanych tutaj.
Deklaruje, że kod wywołujący może uzyskać dostęp do zasobu chronionego przez żądanie uprawnień za pomocą kodu wywołującego tę metodę, nawet jeśli osoby wywołujące wyższe w stosie nie otrzymały uprawnień dostępu do zasobu. Używanie Assert() polecenia może powodować problemy z zabezpieczeniami.
public:
virtual void Assert();
public void Assert();
abstract member Assert : unit -> unit
override this.Assert : unit -> unit
Public Sub Assert ()
Implementuje
Wyjątki
Uwagi
Stos wywołań jest zwykle reprezentowany jako rosnący, dzięki czemu metody wyższe w metodach wywołań stosu wywołań niższe w stosie wywołań. Wywołanie Assert uniemożliwia przejście stosu pochodzącemu z niższego poziomu w stosie wywołań przed stosem wywołań poza kodem, który wywołuje tę metodę. W związku z tym nawet jeśli osoby wywołujące wyższe w stosie wywołań nie mają wymaganych uprawnień dostępu do zasobu, nadal mogą uzyskiwać do niego dostęp za pośrednictwem kodu, który wywołuje tę metodę na niezbędnych uprawnieniach. Potwierdzenie jest skuteczne tylko wtedy, gdy kod, który wywołuje Assert sprawdzanie zabezpieczeń, pod kątem uprawnień, które jest potwierdzane.
Wywołanie metody jest Assert skuteczne, dopóki kod wywołujący nie powróci do obiektu wywołującego. Tylko jeden Assert może być aktywny na ramce. Próba wywołania Assert , gdy aktywna Assert istnieje na ramce, powoduje wyświetlenie elementu SecurityException. Wywołaj lub RevertAssertRevertAll usuń aktywny Assertelement .
Assert jest ignorowana dla nieudzielonego uprawnienia, ponieważ żądanie dla tego uprawnienia nie powiedzie się. Jeśli jednak kod niższy w stosie wywołań wywołuje Demand to uprawnienie, SecurityException element jest zgłaszany, gdy stos dociera do kodu, który próbował wywołać Assertmetodę . Dzieje się tak, ponieważ kod, którego wywołano Assert , nie otrzymał uprawnień, mimo że próbował Assert .
Przestroga
Ponieważ wywołanie Assert usuwa wymaganie, że cały kod w łańcuchu wywołań musi mieć uprawnienie dostępu do określonego zasobu, może otwierać problemy z zabezpieczeniami, jeśli są używane niepoprawnie lub niewłaściwie. W związku z tym należy go używać z dużą ostrożnością.
Notatki dla spadkobierców
Nie można zastąpić tej metody.