CodeAccessPermission.Assert 메서드
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
호출 코드가 이 메서드를 호출하는 코드를 통해 권한 요구로 보호되는 리소스에 액세스할 수 있음을 선언합니다. 스택의 상위 호출자에게 리소스에 대한 액세스 권한이 부여되지 않은 경우에도 해당 메서드를 호출합니다. 사용하면 Assert() 보안 문제가 발생할 수 있습니다.
public:
virtual void Assert();
public void Assert();
abstract member Assert : unit -> unit
override this.Assert : unit -> unit
Public Sub Assert ()
구현
예외
설명
호출 스택은 일반적으로 아래로 증가하는 것으로 표시되므로 호출 스택 호출 메서드에서 더 높은 메서드는 호출 스택에서 더 낮습니다. 호출을 사용하면 Assert 호출 스택에서 낮은 스택에서 시작된 스택 워크가 이 메서드를 호출하는 코드 이상으로 호출 스택을 계속 진행하지 못하게 합니다. 따라서 호출 스택의 상위 호출자에게 리소스에 액세스하기 위한 필수 권한이 없더라도 필요한 권한으로 이 메서드를 호출하는 코드를 통해 계속 액세스할 수 있습니다. 어설션은 호출 Assert 하는 코드가 어설션하는 권한에 대한 보안 검사를 통과하는 경우에만 유효합니다.
호출 코드가 호출자에게 Assert 반환될 때까지 호출이 유효합니다. 프레임에서 하나 Assert 만 활성화할 수 있습니다. 프레임Assert에 활성 Assert 이 있을 때 호출 SecurityException 하려고 하면 . 활성RevertAssert을 호출 RevertAll 하거나 Assert 제거합니다.
Assert 는 해당 권한에 대한 요구가 성공하지 못하므로 부여되지 않은 권한에 대해 무시됩니다. 그러나 호출 스택의 코드가 해당 권한을 Demand 호출 SecurityException 하는 경우 스택 워크가 호출Assert하려는 코드에 도달하면 throw됩니다. 호출된 코드에 Assert 사용 권한이 부여되지 않았기 때문에 이 작업이 수행됩니다 Assert .
Caution
호출을 사용하면 Assert 호출 체인의 모든 코드에 지정된 리소스에 액세스할 수 있는 권한이 부여되어야 한다는 요구 사항이 제거되므로 잘못 또는 부적절하게 사용될 경우 보안 문제가 발생할 수 있습니다. 따라서 주의해서 사용해야 합니다.
상속자 참고
이 메서드는 재정의할 수 없습니다.