Share via


코드 액세스 보안 기본 사항

업데이트: 2007년 11월

공용 언어 런타임 기능이 있는 모든 응용 프로그램은 공용 언어 런타임의 보안 시스템과 상호 작용해야 합니다. 응용 프로그램이 실행될 경우 공용 언어 런타임에 의해 자동으로 평가되어 권한 집합이 부여됩니다. 부여 받은 권한에 따라 응용 프로그램이 제대로 실행될 수도 있고 보안 예외가 생성될 수도 있습니다. 특정 컴퓨터의 로컬 보안 설정에 따라 코드에 부여되는 권한이 결정됩니다. 이러한 설정은 컴퓨터마다 다르므로 실행하기에 충분한 권한이 항상 코드에 부여되는 것은 아닙니다. 그러나, 관리되지 않는 개발 환경에서는 다릅니다. 이런 환경에서는 실행하기 위해 필요한 코드의 권한에 대해 신경쓰지 않아도 됩니다.

모든 개발자는 다음과 같은 코드 액세스 보안 개념을 잘 알고 있어야 공용 언어 런타임 기능이 있는 응용 프로그램을 효율적으로 작성할 수 있습니다.

  • 형식 안전 코드 작성: 코드에서 코드 액세스 보안의 장점을 활용하려면 확인할 수 있는 형식 안전 코드를 생성하는 컴파일러를 사용해야 합니다. 자세한 내용은 확인할 수 있는 형식 안전 코드 작성을 참조하십시오.

  • 명령적 및 선언적 구문: 공용 언어 런타임 보안 시스템과의 상호 작용은 명령적 및 선언적 보안 호출을 사용하여 수행됩니다. 선언적 호출은 특성을 사용하여 수행되며 명령적 호출은 코드 내의 클래스의 새 인스턴스를 사용하여 수행됩니다. 명령적으로만 수행될 수 있는 호출도 있으며 선언적으로만 수행될 수 있는 호출도 있습니다. 일부 호출은 두 가지 방법을 모두 사용할 수 있습니다. 자세한 내용은 보안 구문을 참조하십시오.

  • 코드에 대한 권한 요청: 요청은 어셈블리 범위에 적용됩니다. 이 범위에서 코드는 실행에 필요하거나 원하지 않는 권한을 공용 언어 런타임에게 알립니다. 보안 요청은 코드가 메모리에 로드될 때 공용 언어 런타임에 의해 평가됩니다. 코드가 요청할 경우 공용 언어 런타임이 코드에 부여하는 권한과 요청하지 않았을 경우 부여하는 권한에는 차이가 없습니다. 그러나, 요청은 코드에 의해 사용되어 실행에 필요한 권한을 공용 언어 런타임에게 알립니다. 자세한 내용은 권한 요청을 참조하십시오.

  • 보안 클래스 라이브러리 사용: 클래스 라이브러리는 코드 액세스 보안을 사용하여 클래스 라이브러리에 액세스할 때 필요한 권한을 지정합니다. 코드가 사용하는 라이브러리에 액세스할 때 필요한 권한을 파악하여 코드에서 적절하게 요청해야 합니다. 자세한 내용은 보안 클래스 라이브러리 사용을 참조하십시오.

참고 항목

개념

확인할 수 있는 형식 안전 코드 작성

보안 구문

권한 요청

보안 클래스 라이브러리 사용

기타 리소스

코드 액세스 보안