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 устраняет требование о том, что всему коду в цепочке вызовов должно быть предоставлено разрешение на доступ к указанному ресурсу, при неправильном или неправильном использовании могут возникнуть уязвимости системы безопасности. Поэтому его следует использовать с большой осторожностью.