IStackWalk.Assert IStackWalk.Assert IStackWalk.Assert IStackWalk.Assert Method

정의

스택의 상위 호출자에게 리소스에 액세스할 수 있는 권한이 부여되지 않더라도 호출 코드에서 현재 사용 권한 개체로 식별되는 리소스에 액세스할 수 있음을 어설션합니다.Asserts that the calling code can access the resource identified by the current permission object, even if callers higher in the stack have not been granted permission to access the resource.

public:
 void Assert();
public void Assert ();
abstract member Assert : unit -> unit
Public Sub Assert ()

예외

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

설명

호출 Assert 호출 스택의 상위 호출자 권한 검사를 중지 합니다.Calling Assert stops the permission check on callers higher in the call stack. 따라서 이러한 호출자에이 게 필수 사용 권한을 없는 경우에 리소스 여전히 액세스할 수 있습니다.Therefore, even if these callers do not have the requisite permissions, they can still access resources. 어설션 코드를 호출 하는 경우에 유효 Assert 어설션 중인 권한에 대 한 보안 검사를 통과 합니다.An assertion is effective only if the code that calls Assert passes the security check for the permission that it is asserting.

에 대 한 호출 Assert 호출 코드에 대 한 후속 호출 될 때까지 또는 해당 호출자에 게 반환 될 때까지 유효 Assert 이전 어설션이 비효율적인 렌더링 합니다.A call to Assert is effective until the calling code returns to its caller or until a subsequent call to Assert renders the previous assertion ineffective. 또한 RevertAssertRevertAll 제거는 보류 중인 Assert합니다.Also, RevertAssert or RevertAll removes a pending 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 vulnerabilities if used incorrectly or inappropriately. 따라서 주의 기울여야를 사용 하 여 사용 해야 합니다.Therefore, it should be used with great caution.

적용 대상

추가 정보