CodeAccessPermission.Assert 메서드

정의

스택의 상위 호출자에게 리소스에 액세스할 수 있는 권한이 부여되지 않더라도 호출 코드가 이 메서드를 호출하는 코드를 통해 사용 권한 요구로 보호되는 리소스에 액세스할 수 있음을 선언합니다.Declares that the calling code can access the resource protected by a permission demand through the code that calls this method, even if callers higher in the stack have not been granted permission to access the resource. Assert()를 사용하면 보안 문제가 발생할 수 있습니다.Using Assert() can create security issues.

public:
 void Assert();
[System.Diagnostics.Conditional("FEATURE_MONO_CAS")]
public void Assert ();
member this.Assert : unit -> unit
Public Sub Assert ()

구현

특성

예외

호출 코드에 Assertion이 없습니다.The calling code does not have Assertion.

또는-or- 현재 프레임에 대해 활성 Assert()가 이미 있습니다.There is already an active Assert() for the current frame.

설명

호출 스택의 메서드 호출 스택의 상위에 메서드를 호출 낮은 호출 스택의 있도록에 일반적으로 하향식으로 표시 됩니다.The call stack is typically represented as growing down, so that methods higher in the call stack call methods lower in the call stack. Assert를 호출 하면이 메서드를 호출 하는 코드를 벗어나 호출 스택에서 아래쪽으로 시작 되는 스택 워크가 호출 스택에서 진행 되지 않습니다.Calling Assert prevents a stack walk originating lower in the call stack from proceeding up the call stack beyond the code that calls this method. 따라서 호출 스택의 상위 호출자에 게 리소스에 액세스 하는 데 필요한 권한이 없는 경우에도 필요한 사용 권한에 대해이 메서드를 호출 하는 코드를 통해 해당 호출자에 액세스할 수 있습니다.Therefore, even if callers higher on the call stack do not have the requisite permissions to access a resource, they can still access it through the code that calls this method on the necessary permission. 어설션 코드를 호출 하는 경우에 유효 Assert 어설션 중인 권한에 대 한 보안 검사를 통과 합니다.An assertion is effective only if the code that calls Assert passes the security check for the permission that it is asserting.

Assert 호출은 호출 코드가 호출자에 게 반환 될 때까지 적용 됩니다.The call to Assert is effective until the calling code returns to its caller. 하나의 프레임에는 Assert 하나만 활성화할 수 있습니다.Only one Assert can be active on a frame. 프레임에 활성 Assert 있는 경우 Assert를 호출 하려고 하면 SecurityException발생 합니다.An attempt to call Assert when an active Assert exists on the frame results in a SecurityException. RevertAssert 또는 RevertAll를 호출 하 여 활성 Assert를 제거 합니다.Call RevertAssert or RevertAll to remove an active Assert.

Assert 해당 권한 요청에 실패 합니다 부여 되지 않은 사용 권한을 무시 됩니다.Assert is ignored for a permission not granted because a demand for that permission will not succeed. 그러나 호출 스택에 있는 낮은 코드를 호출 하는 경우 Demand 해당 사용 권한에 대 한는 SecurityException 스택 워크를 호출 하려고 하는 코드에 도달할 때 발생 하는 Assert합니다.However, if code lower on the call stack calls Demand for that permission, a SecurityException is thrown when the stack walk reaches the code that tried to call Assert. 코드는 호출 되므로 이런 Assert 에 권한이 부여 되지는, 하 려 했지만 Assert 것입니다.This happens because the code that called Assert has not been granted the permission, even though it tried to Assert it.

주의

Assert를 호출 하면 호출 체인의 모든 코드에 지정 된 리소스에 대 한 액세스 권한이 부여 되어야 한다는 요구 사항이 제거 되기 때문에 잘못 사용 되거나 부적절 하 게 사용 되는 경우 보안 문제가 발생할 수 있습니다.Because calling Assert removes the requirement that all code in the call chain must be granted permission to access the specified resource, it can open up security issues if used incorrectly or inappropriately. 따라서 주의 기울여야를 사용 하 여 사용 해야 합니다.Therefore, it should be used with great caution.

상속자 참고

이 메서드를 재정의할 수 없습니다.You cannot override this method.

보안

SecurityPermission
Assert()를 호출 하는 기능입니다.for the ability to call Assert(). 연결 된 열거형: AssertionAssociated enumeration: Assertion

적용 대상

추가 정보