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를 overtly 재정의할 수 있습니다.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. 이 경우 메서드에 A 메서드 (호출 메서드)로 스택에 배치 된 Deny는 절대 검색 되지 않습니다.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.

DenyDeny를 호출 하는 메서드가 거부 된 사용 권한으로 보호 되는 리소스에 액세스 하는 데 사용 되는 것을 방지 하기 위해 프로그래머의 책임을 제한 하거나 실수로 인 한 보안 문제를 방지할 수 있습니다.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.

적용 대상