CodeAccessPermission.Assert Metoda

Definicja

Deklaruje, że kod wywołujący może uzyskać dostęp do zasobu chronionego przez żądanie dostępu za pomocą kodu, który wywołuje tę metodę, nawet jeśli obiekty wywołujące wyższego poziomu stosu nie uzyskały uprawnienia dostępu do zasobu.Declares that the calling code can access the resource protected by a permission demand through the code that calls this method, even if callers higher in the stack have not been granted permission to access the resource. Za pomocą Assert() można tworzyć problemy z zabezpieczeniami.Using Assert() can create security issues.

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

Implementuje

Atrybuty

Wyjątki

Kod wywołujący nie ma Assertion.The calling code does not have Assertion.

— lub —-or- Istnieje już aktywna Assert() bieżącej ramki.There is already an active Assert() for the current frame.

Uwagi

Stos wywołań jest zazwyczaj reprezentowany jako rosnący, więc metody wyższe w metodach wywołania stosu wywołań są niższe w stosie wywołań.The call stack is typically represented as growing down, so that methods higher in the call stack call methods lower in the call stack. Wywoływanie Assert uniemożliwia przechodzenie stosu w dół w stosie wywołań od przechodzenia przez proces stosu wywołań poza kod, który wywołuje tę metodę.Calling Assert prevents a stack walk originating lower in the call stack from proceeding up the call stack beyond the code that calls this method. W związku z tym nawet jeśli obiekty wywołujące wyższe na stosie wywołań nie mają wymaganych uprawnień dostępu do zasobu, nadal mogą uzyskać do niego dostęp za pomocą kodu, który wywołuje tę metodę na niezbędnych uprawnieniach.Therefore, even if callers higher on the call stack do not have the requisite permissions to access a resource, they can still access it through the code that calls this method on the necessary permission. Potwierdzenie ma zastosowanie tylko wtedy, gdy kod, który wywołuje Assert przekazuje kontrolę zabezpieczeń dla uprawnienia, które jest potwierdzone.An assertion is effective only if the code that calls Assert passes the security check for the permission that it is asserting.

Wywołanie Assert jest skuteczne do momentu, aż kod wywołujący powróci do obiektu wywołującego.The call to Assert is effective until the calling code returns to its caller. Tylko jeden Assert może być aktywny w ramce.Only one Assert can be active on a frame. Próba wywołania Assert, gdy istnieje aktywna Assert w ramce powoduje SecurityException.An attempt to call Assert when an active Assert exists on the frame results in a SecurityException. Wywołaj RevertAssert lub RevertAll, aby usunąć aktywne Assert.Call RevertAssert or RevertAll to remove an active Assert.

Assert jest ignorowany dla uprawnień, które nie zostały przyznane, ponieważ żądanie tego uprawnienia nie powiedzie się.Assert is ignored for a permission not granted because a demand for that permission will not succeed. Jeśli jednak kod niższy na stosie wywołań wywoła Demand dla tego uprawnienia, zostanie zgłoszony SecurityException, gdy przechodzenie stosu osiągnie kod, który próbował wywołać Assert.However, if code lower on the call stack calls Demand for that permission, a SecurityException is thrown when the stack walk reaches the code that tried to call Assert. Dzieje się tak, ponieważ kod, który został wywołany Assert nie otrzymał uprawnienia, nawet jeśli podjęto próbę jego Assert.This happens because the code that called Assert has not been granted the permission, even though it tried to Assert it.

Przestroga

Ponieważ wywołanie Assert eliminuje wymaganie, aby cały kod w łańcuchu wywołań musiał otrzymać uprawnienia dostępu do określonego zasobu, może otworzyć problemy z zabezpieczeniami, jeśli są używane nieprawidłowo lub niewłaściwie.Because calling Assert removes the requirement that all code in the call chain must be granted permission to access the specified resource, it can open up security issues if used incorrectly or inappropriately. W związku z tym powinno być używane z dużą ostrożnością.Therefore, it should be used with great caution.

Uwagi dotyczące dziedziczenia

Nie można zastąpić tej metody.You cannot override this method.

Dotyczy

Zobacz też