CodeAccessPermission.PermitOnly 메서드
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
호출 스택의 상위 호출자가 이 메서드를 호출하는 코드를 통해 현재 인스턴스에서 지정한 리소스를 제외한 모든 리소스에 액세스할 수 없게 합니다.
public:
virtual void PermitOnly();
public void PermitOnly ();
abstract member PermitOnly : unit -> unit
override this.PermitOnly : unit -> unit
Public Sub PermitOnly ()
구현
예외
현재 프레임에 대해 활성 PermitOnly()가 이미 있습니다.
설명
중요
메서드는 PermitOnly 완전히 신뢰할 수 있는 코드로 인한 실수로 인한 액세스로부터 리소스를 보호하는 데만 사용해야 합니다. 신뢰할 수 없는 코드에 의한 의도적인 오용으로부터 리소스를 보호하는 데 사용하면 안 됩니다. 예를 들어 메서드 A
가 권한에 대해 을 PermitOnly 발급한 다음 메서드 B
를 호출하는 경우 메서드 B
는 를 실행Assert하여 를 재정의 PermitOnly 할 수 있습니다. 호출된 메서드는 스택에서 항상 더 높습니다. 따라서 메서드 B
가 보호된 리소스에 액세스하려고 하면 메서드 B
가 즉시 호출자이기 때문에 보안 시스템에서 해당 리소스에 대한 사용 권한 확인을 시작한 다음 스택 아래로 걸어 스택에 없거나 낮은 리소스가 있는지 DenyPermitOnly 확인합니다. 리소스에 액세스하려는 메서드는 메서드 B
를 사용하여 스택 워크를 즉시 중지할 Assert 수 있습니다. 이 경우 PermitOnly 메서드(호출 메서드 A
)로 스택에 배치된 는 검색되지 않습니다.
PermitOnly 비슷합니다 Deny스택 워크는 성공이 고, 그렇지 때 있는 상황에서, 합니다. 점이 Deny 실패는 스택 워크는 사용 권한을 지정 하지만 PermitOnly 실패 스택 워크가 발생 하지 않는 유일한 사용 권한을 지정 합니다.
지정 된 리소스에 액세스 하려면 코드를 사용할 수 있도록 하려면이 메서드를 호출 합니다. 에 대한 PermitOnly 호출은 호출 코드가 호출자에게 반환될 때까지 유효합니다. 프레임에서 하나 PermitOnly 만 활성화할 수 있습니다. 프레임에 활성 PermitOnly 이 있을 때 를 호출 PermitOnly 하려고 하면 가 발생합니다SecurityException. 또는 RevertAll 를 호출 RevertPermitOnly 하여 활성 PermitOnly를 제거합니다.
PermitOnly 해당 권한 요청에 실패 합니다 부여 되지 않은 사용 권한을 무시 됩니다. 그러나 하위 호출에서 나중에 스택 하는 경우 호출 Demand 해당 사용 권한에 대 한는 SecurityException 스택 워크를 호출 하려고 하는 코드에 도달할 때 발생 하는 PermitOnly합니다. 코드는 호출 되므로이 작업이 PermitOnly 에 권한이 부여 되지를 호출 했지만 PermitOnly 해당 사용 권한에 대 한 합니다. 호출 스택의 메서드 호출 스택의 상위에 메서드를 호출 낮은 호출 스택의 있도록에 일반적으로 하향식으로 표시 됩니다.
상속자 참고
이 메서드를 재정의할 수 없습니다.
적용 대상
.NET