ClickOnce 응용 프로그램의 코드 액세스 보안
ClickOnce 응용 프로그램은 .NET Framework를 기반으로 하며 코드 액세스 보안 제약 조건을 따릅니다. 따라서 코드 액세스 보안의 의미를 이해하여 그에 맞게 ClickOnce 응용 프로그램을 작성해야 합니다.
코드 액세스 보안은 보호된 리소스와 작업에 대해 코드에 적용되는 액세스를 제한하는 .NET Framework의 메커니즘입니다. 응용 프로그램 설치 관리자의 위치로 적절한 영역을 사용하도록 ClickOnce 응용 프로그램의 코드 액세스 보안 권한을 구성해야 합니다. 대부분의 경우 제한된 권한 집합에 대해 인터넷 영역을 선택하거나 큰 권한 집합에 대해 로컬 인트라넷 영역을 선택할 수 있습니다.
기본 ClickOnce 코드 액세스 보안
기본적으로 ClickOnce 응용 프로그램은 클라이언트 컴퓨터에 설치 또는 실행될 때 완전 신뢰 권한을 받습니다.
완전 신뢰 권한이 있는 응용 프로그램은 파일 시스템 및 레지스트리 같은 리소스에 무제한으로 액세스할 수 있으므로 응용 프로그램 및 최종 사용자 시스템이 악의적인 코드의 영향을 받을 수 있습니다.
응용 프로그램에 완전 신뢰 권한이 필요하면 응용 프로그램에 권한을 부여하라는 메시지가 표시될 수 있습니다. 이는 해당 응용 프로그램이 완벽하게 ClickOnce 환경에서 실행 중이 아님을 의미하며 경험이 부족한 사용자에게는 이러한 메시지가 혼란을 줄 수 있습니다.
참고
CD-ROM 같은 이동식 미디어에서 응용 프로그램을 설치할 때는 이러한 메시지가 표시되지 않습니다. 또한 네트워크 관리자는 신뢰할 수 있는 소스에서 응용 프로그램을 설치할 때 이러한 메시지가 표시되지 않도록 네트워크 정책을 구성할 수 있습니다. 자세한 내용은 신뢰할 수 있는 응용 프로그램 배포 개요를 참조하십시오.
응용 프로그램에 필요한 권한에 가장 적합한 영역을 요청하도록 해당 응용 프로그램의 코드 액세스 보안 권한을 수정하여 ClickOnce 응용 프로그램의 권한을 제한할 수 있습니다. 대부분의 경우 응용 프로그램이 배포되는 영역을 선택할 수 있습니다. 예를 들어 엔터프라이즈 응용 프로그램의 경우 로컬 인트라넷 영역을 사용하고 인터넷 응용 프로그램의 경우 인터넷 영역을 사용할 수 있습니다.
보안 권한 구성
항상 코드 액세스 보안 권한을 제한하는 적절한 영역을 요청하도록 ClickOnce 응용 프로그램을 구성해야 합니다. 프로젝트 디자이너의 보안 페이지에서 보안 권한을 구성할 수 있습니다.
프로젝트 디자이너의 보안 페이지에는 ClickOnce 보안 설정 사용 확인란이 있습니다. 이 확인란을 선택하면 응용 프로그램의 배포 매니페스트에 보안 권한 요청이 추가됩니다. 요청된 권한이 응용 프로그램이 배포된 영역의 기본 권한보다 높을 경우 설치 시에 권한을 부여하라는 메시지가 표시됩니다. 자세한 내용은 방법: ClickOnce 보안 설정 사용을 참조하십시오.
서로 다른 여러 위치에서 배포된 응용 프로그램에 대해서는 표시되는 메시지 없이 각기 다른 수준의 권한이 부여됩니다. 예를 들어 인터넷에서 배포되는 응용 프로그램에는 가장 제한적인 권한 집합이 부여되고, 로컬 인트라넷에서 설치되는 응용 프로그램에는 좀 더 높은 권한이 부여되며, CD-ROM에서 설치되는 응용 프로그램에는 완전 신뢰 권한이 부여됩니다.
권한을 처음 구성할 경우 보안 페이지의 영역 목록에서 보안 영역을 선택할 수 있습니다. 응용 프로그램을 둘 이상의 영역에서 배포하려면 더 낮은 권한이 적용된 영역을 선택합니다. 자세한 내용은 방법: ClickOnce 응용 프로그램의 보안 영역 설정을 참조하십시오.
설정할 수 있는 속성은 권한 집합마다 다르며 모든 권한 집합의 속성을 구성할 수 있는 것은 아닙니다. 응용 프로그램에서 요청할 수 있는 권한의 전체 목록에 대한 자세한 내용은 System.Security.Permissions를 참조하십시오. 사용자 지정 영역의 권한을 설정하는 방법에 대한 자세한 내용은 방법: ClickOnce 응용 프로그램에 대한 사용자 지정 권한 설정을 참조하십시오.
제한된 권한이 있는 응용 프로그램 디버깅
개발자는 대부분의 경우 완전 신뢰 권한으로 개발 컴퓨터를 실행하므로 개발자가 응용 프로그램을 디버깅할 때 표시되는 보안 예외는 사용자가 제한된 권한으로 응용 프로그램을 실행할 때 표시되는 보안 예외와 동일하지 않습니다.
이러한 예외를 catch하려면 최종 사용자와 동일한 권한으로 응용 프로그램을 디버깅해야 합니다. 제한된 권한으로 디버깅하는 기능은 프로젝트 디자이너의 보안 페이지에서 활성화할 수 있습니다.
제한된 권한으로 응용 프로그램을 디버깅할 경우 보안 페이지에서 사용할 수 없게 설정된 모든 코드 보안 요청에 대해 예외가 발생합니다. 그러면 예외 도우미가 표시되어 예외가 발생하지 않도록 코드를 수정하는 방법을 제시합니다.
또한 코드 작성 시 코드 편집기의 IntelliSense 기능은 사용자가 구성한 보안 권한에 포함되지 않은 모든 멤버를 비활성화합니다.
자세한 내용은 방법: 제한된 권한으로 ClickOnce 응용 프로그램 디버깅을 참조하십시오.
브라우저에서 호스팅되는 응용 프로그램의 보안 권한
Visual Studio에서는 WPF(Windows Presentation Foundation)에 대해 다음과 같은 프로젝트 형식을 제공합니다.
WPF Windows 응용 프로그램
WPF 웹 브라우저 응용 프로그램
WPF 사용자 지정 컨트롤 라이브러리
WPF 서비스 라이브러리
이러한 프로젝트 형식 중에서 WPF 웹 브라우저 응용 프로그램만은 웹 브라우저에서 호스팅되므로 특별한 배포 및 보안 설정이 필요합니다. 이러한 응용 프로그램의 기본 보안 설정은 다음과 같습니다.
ClickOnce 보안 설정 사용
부분 신뢰 응용 프로그램
인터넷 영역(WPF 웹 브라우저 응용 프로그램에 대한 기본 권한 집합이 선택된 상태)
고급 보안 설정 대화 상자의 선택한 권한 집합으로 이 응용 프로그램 디버깅 확인란은 선택된 상태로 비활성화되어 있습니다. 이는 브라우저에서 호스팅되는 응용 프로그램에 대해 영역 내 디버깅을 해제할 수 없기 때문입니다. 자세한 내용은 WPF XAML 브라우저 응용 프로그램 개요를 참조하십시오.
참고 항목
작업
방법: ClickOnce 응용 프로그램의 보안 영역 설정
방법: ClickOnce 응용 프로그램에 대한 사용자 지정 권한 설정
방법: 제한된 권한으로 ClickOnce 응용 프로그램 디버깅