권한 요청
업데이트: 2007년 11월
권한 요청은 코드가 보안을 인식하도록 만드는 주요 방법입니다. 보호되는 리소스에 액세스하는 응용 프로그램에는 권한 요청이 포함되어야 합니다. 자세한 내용은 코드 액세스 보안 기본 사항을 참조하십시오. 요청을 통해 다음과 같은 두 가지 작업을 수행할 수 있습니다.
코드를 실행하는 데 필요한 최소한의 권한을 요청합니다.
코드에서 실제로 필요한 권한만 받도록 합니다.
다음 코드 예제에서는 기본적인 권한 요청을 보여 줍니다.
<assembly: FileIOPermissionAttribute(SecurityAction.RequestMinimum, Write := "C:\test.tmp"), _
assembly: PermissionSet(SecurityAction.RequestOptional, Unrestricted := False)>
[assembly:FileIOPermissionAttribute(SecurityAction.RequestMinimum, Write="C:\\test.tmp")]
[assembly:PermissionSet(SecurityAction.RequestOptional,Unrestricted=false)]
이 예제에서는 C:\test.tmp에 대한 쓰기 권한을 받지 않으면 코드가 실행되지 않음을 .NET Framework 보안 시스템에 알려 줍니다. 이 권한을 부여하지 않는 보안 정책이 코드에 적용되면 PolicyException이 발생하고 코드는 실행되지 않습니다. 이 요청을 사용하면 코드가 이 권한을 부여받았을 경우에만 실행되도록 할 수 있으며 권한이 충분하지 않을 경우 발생하는 오류에 대해 신경 쓰지 않아도 됩니다.
이 예제에서는 추가 권한이 필요하지 않음을 보안 시스템에 알려 줍니다. 이렇게 지정하지 않으면 코드는 권한 정책에 따라 해당 코드에 부여할 수 있는 모든 권한을 받게 됩니다. 추가 권한이 위험을 야기하지는 않지만 권한을 적게 부여하면 예기치 않은 보안 버그를 효과적으로 차단할 수 있습니다. 코드에 필요 이상의 권한이 있으면 보안 문제가 발생할 수 있습니다.
코드에 부여되는 권한을 최소한으로 제한하는 또다른 방법은 거부할 특정 권한을 목록으로 만드는 것입니다. 해당 요청에서 특정 권한만 제외하고 모든 권한이 선택적일 것을 요구하면 권한은 일반적으로 거부됩니다. 자세한 내용은 권한 거부를 참조하십시오.