CodeAccessPermission.Deny Метод

Определение

Предупреждение

Этот API устарел.

Запрещает вызывающим объектам выше в стеке вызовов использовать код, который вызывает этот метод для доступа к ресурсу, указанному текущим экземпляром.Prevents callers higher in the call stack from using the code that calls this method to access the resource specified by the current instance.

public:
 void Deny();
[System.Obsolete]
[System.Obsolete("Deny is obsolete and will be removed in a future release of the .NET Framework. See https://go.microsoft.com/fwlink/?LinkID=155570 for more information.")]
[System.Diagnostics.Conditional("FEATURE_MONO_CAS")]
public void Deny ();
member this.Deny : unit -> unit
Public Sub Deny ()

Реализации

Атрибуты

Исключения

Уже имеется активное утверждение Deny() для текущего кадра.There is already an active Deny() for the current frame.

Комментарии

Важно!

Метод Deny следует использовать только для защиты ресурсов от случайного доступа с помощью полностью доверенного кода.The Deny method should be used only to protect resources from accidental access by fully trusted code. Его не следует использовать для защиты ресурсов от намеренного использования ненадежным кодом.It should not be used to protect resources from intentional misuse by untrusted code. Например, если метод A выдает Deny для разрешения, а затем вызывает метод B, метод B может овертли переопределить Deny, выполнив Assert.For example, if method A issues a Deny for a permission and then calls method B, method B can overtly override the Deny by issuing an Assert. Вызываемый метод всегда выше в стеке.The called method is always higher in the stack. Таким образом, если метод B пытается получить доступ к защищенному ресурсу, система безопасности начинает проверять наличие разрешений, так как метод B является непосредственным вызывающим объектом, а затем просматривает стек, чтобы убедиться в отсутствии Deny или PermitOnly ниже. в стеке.Therefore, if method B tries to access a protected resource, the security system begins checking for permissions with it because method B is the immediate caller, and then walks down the stack to confirm that there is no Deny or PermitOnly lower in the stack. Метод B, который пытается получить доступ к ресурсу, может немедленно прерывать выполнение прохода стека с помощью метода Assert.Method B, which is trying to access the resource, can stop the stack walk immediately by using the Assert method. В этом случае Deny, помещаемые в стек методом A (вызывающий метод), никогда не обнаруживаются.In that case, the Deny placed on the stack by method A (the calling method) is never discovered.

Этот метод не позволяет вызывающим объектам, находящихся выше в стеке вызовов, получить доступ к защищенному ресурсу через код, вызывающий этот метод, даже если этим вызывающим объектам предоставлено разрешение на доступ к нему.This method prevents callers higher in the call stack from accessing the protected resource through the code that calls this method, even if those callers have been granted permission to access it. Стек вызовов обычно представляется как увеличивающийся, поэтому методы, набольшиеся в методах вызова стека вызовов, располагаются ниже в стеке вызовов.The call stack is typically represented as growing down, so that methods higher in the call stack call methods lower in the call stack.

Deny может ограничить ответственность программиста или предотвратить случайные проблемы безопасности, так как это помогает предотвратить использование метода, вызывающего Deny, для доступа к ресурсу, защищенному запрещенным разрешением.Deny can limit the liability of the programmer or help prevent accidental security issues because it helps prevent the method that calls Deny from being used to access the resource protected by the denied permission. Если метод вызывает Deny для разрешения, а Demand для этого разрешения вызывается вызывающим объектом ниже в стеке вызовов, проверка безопасности завершится ошибкой, когда достигается Deny.If a method calls Deny on a permission, and if a Demand for that permission is invoked by a caller lower in the call stack, that security check will fail when it reaches the Deny.

Вызов Deny действует до тех пор, пока вызывающий код не вернется в вызывающий объект.The call to Deny is effective until the calling code returns to its caller. Только одна Deny может быть активна в кадре.Only one Deny can be active on a frame. Попытка вызова Deny, когда в кадре существует активная Deny, приводит к SecurityException.An attempt to call Deny when an active Deny exists on the frame results in a SecurityException. Вызовите RevertDeny или RevertAll, чтобы удалить активный Deny.Call RevertDeny or RevertAll to remove an active Deny. Deny не учитывается для разрешения, которое не предоставлено, так как запрос на это разрешение не будет выполнен.Deny is ignored for a permission not granted because a demand for that permission will not succeed.

Примечания для тех, кто наследует этот метод

Этот метод нельзя переопределить.You cannot override this method.

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