CodeAccessPermission.Assert 메서드

정의

스택의 상위 호출자에게 리소스에 액세스할 수 있는 권한이 부여되지 않더라도 호출 코드가 이 메서드를 호출하는 코드를 통해 사용 권한 요구로 보호되는 리소스에 액세스할 수 있음을 선언합니다. Assert()를 사용하면 보안 문제가 발생할 수 있습니다.

public:
 virtual void Assert();
public void Assert ();
abstract member Assert : unit -> unit
override this.Assert : unit -> unit
Public Sub Assert ()

구현

예외

호출 코드에 Assertion이 없습니다.

또는

현재 프레임에 대해 활성 Assert()가 이미 있습니다.

설명

호출 스택의 메서드 호출 스택의 상위에 메서드를 호출 낮은 호출 스택의 있도록에 일반적으로 하향식으로 표시 됩니다. 를 호출 Assert 하면 호출 스택에서 아래쪽으로 시작되는 스택 워크가 이 메서드를 호출하는 코드 이상으로 호출 스택을 진행하지 못하게 됩니다. 따라서 호출 스택의 상위 호출자에게 리소스에 액세스하기 위한 필수 권한이 없더라도 필요한 권한으로 이 메서드를 호출하는 코드를 통해 액세스할 수 있습니다. 어설션 코드를 호출 하는 경우에 유효 Assert 어설션 중인 권한에 대 한 보안 검사를 통과 합니다.

에 대한 Assert 호출은 호출 코드가 호출자에게 반환될 때까지 유효합니다. 프레임에서 하나 Assert 만 활성화할 수 있습니다. 프레임에 활성 Assert 이 있을 때 를 호출 Assert 하려고 하면 가 발생합니다SecurityException. 또는 RevertAll 를 호출 RevertAssert 하여 활성 Assert를 제거합니다.

Assert 해당 권한 요청에 실패 합니다 부여 되지 않은 사용 권한을 무시 됩니다. 그러나 호출 스택에 있는 낮은 코드를 호출 하는 경우 Demand 해당 사용 권한에 대 한는 SecurityException 스택 워크를 호출 하려고 하는 코드에 도달할 때 발생 하는 Assert합니다. 코드는 호출 되므로 이런 Assert 에 권한이 부여 되지는, 하 려 했지만 Assert 것입니다.

주의

를 호출 Assert 하면 호출 체인의 모든 코드에 지정된 리소스에 액세스할 수 있는 권한이 부여되어야 한다는 요구 사항이 제거되므로 잘못되거나 부적절하게 사용되는 경우 보안 문제가 발생할 수 있습니다. 따라서 주의 기울여야를 사용 하 여 사용 해야 합니다.

상속자 참고

이 메서드를 재정의할 수 없습니다.

적용 대상

추가 정보