CodeAccessPermission.Assert Metoda

Definicja

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 obiekty wywołujące wyższe w stosie nie otrzymały uprawnień dostępu do zasobu. Za pomocą polecenia Assert() można tworzyć problemy z zabezpieczeniami.

public:
 virtual void Assert();
public:
 void Assert();
public void Assert ();
[System.Diagnostics.Conditional("FEATURE_MONO_CAS")]
public void Assert ();
abstract member Assert : unit -> unit
override this.Assert : unit -> unit
[<System.Diagnostics.Conditional("FEATURE_MONO_CAS")>]
member this.Assert : unit -> unit
Public Sub Assert ()

Implementuje

Atrybuty

Wyjątki

Kod wywołujący nie ma elementu Assertion.

-lub- Dla bieżącej ramki jest już aktywna Assert() .

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 zapobiega przejściu stosu pochodzącemu z dolnej części stosu wywołań, przechodząc do stosu wywołań poza kod, który wywołuje tę metodę. W związku z tym nawet jeśli elementy 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 wywołujący Assert przekazuje sprawdzanie zabezpieczeń dla uprawnienia, które jest potwierdzane.

Wywołanie metody Assert jest 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 metodę RevertAssert lub RevertAll , aby usunąć aktywny Assertelement .

Assert Jest ignorowany dla uprawnienia, którego nie udzielono, ponieważ żądanie tego uprawnienia nie powiedzie się. Jeśli jednak kod niższy w stosie wywołań wywołuje Demand to uprawnienie, zostanie zgłoszony, SecurityException gdy stos osiągnie kod, który próbował wywołać Assertmetodę . Dzieje się tak, ponieważ kod, który został wywołany Assert , nie otrzymał uprawnienia, mimo że próbował Assert .

Przestroga

Ponieważ wywołanie Assert usuwa wymaganie, aby cały kod w łańcuchu wywołań otrzymał uprawnienia dostępu do określonego zasobu, może otworzyć problemy z zabezpieczeniami, jeśli są używane niepoprawnie lub niewłaściwie. Dlatego należy go używać z dużą ostrożnością.

Uwagi dotyczące dziedziczenia

Nie można zastąpić tej metody.

Dotyczy

Zobacz też