CodeAccessPermission.Assert Metoda
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.
Deklaruje, że kod wywołujący może uzyskać dostęp do zasobu chronionego przez żądanie uprawnień za pośrednictwem kodu, który wywołuje tę metodę, nawet jeśli osoby wywołujące wyższe w stosie nie otrzymały uprawnień dostępu do zasobu. Korzystanie z programu Assert() 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 w dół, dzięki czemu metody wyższe w metodach wywołań stosu wywołań są niższe w stosie wywołań. Wywołanie Assert uniemożliwia przejście stosu pochodzącego z niższego poziomu w stosie wywołań przed przejściem do stosu wywołań poza kod, 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ą uzyskać do niego dostęp za pośrednictwem kodu, który wywołuje tę metodę przy użyciu niezbędnych uprawnień. 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 elementu , gdy aktywna Assert istnieje na ramce, powoduje wyświetlenie elementu SecurityException. Wywołaj RevertAssert lub RevertAll usuń aktywny Assertelement .
Assert Jest ignorowany dla uprawnienia, które nie udzielono, ponieważ żądanie dla tego uprawnienia nie powiedzie się. Jeśli jednak kod niższy w stosie wywołań wywołuje Demand to uprawnienie, element zostanie zgłoszony, SecurityException gdy przewodnik stosu osiągnie kod, który próbował wywołać metodę Assert. Dzieje się tak, ponieważ kod, którego wywołano Assert , nie otrzymał uprawnienia, mimo że próbował Assert .
Caution
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 dotyczące dziedziczenia
Nie można zastąpić tej metody.