IStackWalk.Assert Metoda

Definicja

Potwierdza, że kod wywołujący może uzyskać dostęp do zasobu identyfikowanego przez bieżący obiekt uprawnień, nawet jeśli obiekty wywołujące wyższe w stosie nie uzyskały uprawnień dostępu do zasobu.Asserts that the calling code can access the resource identified by the current permission object, even if callers higher in the stack have not been granted permission to access the resource.

public:
 void Assert();
public void Assert ();
abstract member Assert : unit -> unit
Public Sub Assert ()

Wyjątki

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

Uwagi

Wywołanie Assert powoduje zatrzymanie sprawdzania uprawnień dla obiektów wywołujących wyższych w stosie wywołań.Calling Assert stops the permission check on callers higher in the call stack. W związku z tym nawet jeśli Ci wywołujący nie mają wymaganych uprawnień, nadal mogą uzyskać dostęp do zasobów.Therefore, even if these callers do not have the requisite permissions, they can still access resources. 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 obowiązuje do momentu, aż kod wywołujący powróci do jego obiektu wywołującego lub do momentu kolejnego wywołania Assert renderuje poprzednie potwierdzenie.A call to Assert is effective until the calling code returns to its caller or until a subsequent call to Assert renders the previous assertion ineffective. Ponadto RevertAssert lub RevertAll usuwa oczekujące Assert.Also, RevertAssert or RevertAll removes a pending 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ływanie Assert eliminuje wymaganie, aby cały kod w łańcuchu wywołań musiał otrzymać uprawnienia dostępu do określonego zasobu, można otworzyć luki w zabezpieczeniach, 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 vulnerabilities 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.

Dotyczy

Zobacz też