IStackWalk.Assert Метод

Определение

Утверждает, что вызывающий код может получить доступ к ресурсу, определяемму текущим объектом разрешения, даже если вызывающие объекты выше в стеке не были предоставлены разрешения на доступ к ресурсу.

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

Исключения

Вызывающий код не имеет Assertion.

Комментарии

Вызов Assert останавливает проверку разрешений на вызывающих абонентов в стеке вызовов. Таким образом, даже если эти вызывающие пользователи не имеют необходимых разрешений, они по-прежнему могут получить доступ к ресурсам. Утверждение действует только в том случае, если код, который вызывает Assert проверку безопасности, для разрешения, которое оно утверждает.

Вызов Assert действует до тех пор, пока вызывающий код не возвращается вызывающему объекту или до последующего вызова Assert для отрисовки предыдущего утверждения неэффективным. Кроме того, RevertAssert или RevertAll удаляет ожидающий Assertобъект.

Assert игнорируется для разрешения, не предоставленного, так как запрос на это разрешение не будет выполнено. Однако если код ниже в стеке вызовов этого разрешения, Demand возникает, когда пошаговые инструкции SecurityException по стеку достигают кода, который пытался вызватьAssert. Это происходит из-за того, что код, который вызывается Assert , не был предоставлен разрешение, несмотря на попытку Assert .

Предостережение

Так как вызов Assert удаляет требование, что весь код в цепочке вызовов должен быть предоставлен разрешение на доступ к указанному ресурсу, он может открывать уязвимости безопасности, если они используются неправильно или неправильно. Поэтому его следует использовать с большой осторожностью.

Применяется к

См. также раздел