2009-03-04 5 views
4

저는 상용 제품을 생산하는 회사에서 일하고 있으며, 현재 일부 대형 고객이 ClickOnce를 통해 응용 프로그램의 클라이언트 측을 배포 할 수있는 솔루션을 제공하기 위해 노력하고 있습니다.ClickOnce and Security

고객은 ClickOnce 설치를 네트워크 공유에 배포 한 다음 응용 프로그램 매니페스트에 대한 링크를 전자 메일이나 다른 방법을 통해 클라이언트에 보내야합니다.

우리는 ClickOnce 설치 작업을 자동화 된 빌드 (Mage 명령 줄 도구 사용)에 성공적으로 통합 할 수 있었기 때문에 클라이언트 시스템에서 실제 설치를 성공적으로 실행할 수 있습니다. 그러나 설치 및 실행 후 응용 프로그램은 FileIOPermission에 대한 액세스가 거부되므로 런타임에 SecurityException을 발생시킵니다. 우리 응용 프로그램에는 FullTrust 권한이 필요하지만 실행중인 어셈블리의 CodeBase 위치가 네트워크 공유 인 경우 FileIOPermission을 포함하지 않는 LocalIntranet 권한 만 부여 된 것으로 보입니다. 해결 방법은 CasPol 도구를 사용하여이 문서에서 제공하는 http://blogs.msdn.com/shawnfa/archive/2004/12/30/344554.aspx

,하지만 우리는 모든 단일 클라이언트 시스템에서이 작업을 실행해야합니다 :이 겉으로는이 있음을 나타냅니다 여기 문서는 매우 일반적인 문제입니다

전개 환경에서. 이는 실제로 문제가 아닙니다. CasPol 도구로 수행되는 작업을 수행하기 위해 클라이언트 시스템에 대한 관리자 권한이 필요하며 고객 환경에있는 대부분의 클라이언트에게는 이러한 권한이 부여되지 않습니다.

기사는 또한 CasPol 수정을 실행에 대한 필요성이 .NET 3.5 SP1의 출시와 함께 완화 된 것을 암시하는 것 같은 블로그에 게시되었습니다 : 그러나 http://blogs.msdn.com/shawnfa/archive/2008/05/12/fulltrust-on-the-localintranet.aspx

, 나는 우리의 응용 프로그램을 수정 이 기사에서 설명하는대로 프레임 워크의 SP1 릴리스를 특별히 대상으로 지정합니다. http://msdn.microsoft.com/en-us/library/bb398202.aspx#

이 작업을 수행 한 후에도 동일한 SecurityException이 발생했습니다. 그래서 특정 SP1 ClickOnce 설정을 문서에 설명 된대로 적용했지만 여전히 기쁨은 없습니다. 게시 네트워크 공유에서 직접 응용 프로그램을 시작하면 사용 권한이 부여되며 ClickOnce 컨텍스트 내에서만 사용이 거부됩니다.

다른 이들과 유사한 문제가 발생 했습니까? 우리가 심지어 ClickOnce 솔루션을 출시하지 않았기 때문에 다른 이들이 이전에 알아 차렸을 것 같은이 사용 권한과 관련하여 프레임 워크의 SP1 릴리스에 문제가 있다면 생각했을 것입니다.

답변

3

점심 시간 동안 보안 예외가있는 .NET 4.0에서 비슷한 문제가 발생했다고 생각합니다. 내가 찾은 해결책은 승인 된 인증서로 매니페스트에 디지털 서명하는 것입니다 (기본 비주얼 스튜디오가 프로젝트에 생성하는 것이 아닙니다).

알려진 "버그"(또는 의도적으로) ClickOnce 배포 된 매니페스트에 대한 것입니다.

프로젝트에 서명 되었습니까?