CodeAccessPermission.Deny Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Внимание!
Теперь этот API является нерекомендуемым.
Внимание!
Deny is obsolete and will be removed in a future release of the .NET Framework. See http://go.microsoft.com/fwlink/?LinkID=155570 for more information.
Запрещает вызывающим объектам в стеке вызовов использовать код, который вызывает этот метод для доступа к ресурсу, указанному текущим экземпляром.
public:
virtual void Deny();
[System.Obsolete]
public void Deny();
public void Deny();
[System.Obsolete("Deny is obsolete and will be removed in a future release of the .NET Framework. See http://go.microsoft.com/fwlink/?LinkID=155570 for more information.")]
public void Deny();
[<System.Obsolete>]
abstract member Deny : unit -> unit
override this.Deny : unit -> unit
abstract member Deny : unit -> unit
override this.Deny : unit -> unit
[<System.Obsolete("Deny is obsolete and will be removed in a future release of the .NET Framework. See http://go.microsoft.com/fwlink/?LinkID=155570 for more information.")>]
abstract member Deny : unit -> unit
override this.Deny : unit -> unit
Public Sub Deny ()
Реализации
- Атрибуты
Исключения
Для текущего кадра уже активен Deny() .
Комментарии
Important
Этот Deny метод следует использовать только для защиты ресурсов от случайного доступа с помощью полностью доверенного кода. Он не должен использоваться для защиты ресурсов от преднамеренного неправильного использования ненадежным кодом. Например, если метод A выдает Deny разрешение, а затем вызывает метод B, метод B может переопределить Deny метод путем выдачи Assert. Вызываемая метод всегда выше в стеке. Таким образом, если метод B пытается получить доступ к защищенному ресурсу, система безопасности начинает проверку разрешений с ним, так как метод является непосредственным вызывающим, B а затем проходит по стеку, чтобы убедиться, что Deny нет или PermitOnly ниже в стеке. Метод B, который пытается получить доступ к ресурсу, может немедленно остановить ход стека с помощью Assert метода. В этом случае объект, помещенный Deny в стек по методу A (вызывающий метод), никогда не обнаруживается.
Этот метод предотвращает доступ вызывающих лиц в стеке вызовов к защищенному ресурсу с помощью кода, вызывающего этот метод, даже если вызывающим лицам было предоставлено разрешение на доступ к нему. Стек вызовов обычно представлен как растущий, так что методы выше в методах вызова стека вызовов ниже в стеке вызовов.
Deny может ограничить ответственность программиста или предотвратить случайные проблемы безопасности, так как это помогает предотвратить использование метода, который вызывается Deny для доступа к ресурсу, защищенному отклоненным разрешением. Если метод вызывает Deny разрешение и Demand если это разрешение вызывается вызывающим оператором ниже в стеке вызовов, проверка безопасности завершится ошибкой, когда она достигнет.Deny
Вызов Deny действует до тех пор, пока вызывающий код не возвращается вызывающей объекту. Только один Deny может быть активным в кадре. Попытка вызвать Deny , когда активная Deny функция существует в кадре, приводит к ошибке SecurityException. Вызов RevertDeny или RevertAll удаление активного Deny. Deny игнорируется для разрешения, не предоставленного, так как запрос на это разрешение не будет выполнено.
Примечания для тех, кто наследует этот метод
Этот метод нельзя переопределить.