2011-02-16 5 views
1

나는 인트라넷에서 내부적으로 clickonce를 통해 배포하려고하는 .NET 4.0, VS2010으로 작성된 WPF 응용 프로그램을 보유하고 있습니다.Clickonce + HKEY_LOCAL_MACHINE

문제는 HKEY_LOCAL_MACHINE에서 레지스트리 키를 만들려고하고 있는데 액세스가 거부되었습니다.

나는 앱을 완전히 신뢰하도록 설정했으며, RegistryPermission을 아무 소용이없는 것으로 주장하기까지했다.

clickonce를 통해 앱을 배포하고 HKEY_LOCAL_MACHINE에 액세스 할 수 없습니까?

답변

2

ClickOnce에는 없습니다.

설명은 here을 참조하십시오. 관련 부분 :

보안 상승 공격에 노출 될 위험이 있으므로 ClickOnce 응용 프로그램은 클라이언트에 대해 UAC를 사용하도록 설정되어 있으면 권한 상승을 요청할 수 없습니다. requestedExecutionLevel 특성을 requireAdministrator 또는 highestAvailable로 설정하려고 시도하는 모든 ClickOnce 응용 프로그램은 Windows Vista에 설치되지 않습니다.

마지막 문장은 보안 모델이 동일하므로 Windows 7에도 적용됩니다.

결론은 "관리자 권한으로 실행"권한 상승이 필요하다는 것입니다. 따라서 UAC가 켜져있는 클라이언트로 수행하려는 작업을 수행 할 수 없습니다. 응용 프로그램 설치시 로컬 컴퓨터 에 접근 권한을 필요로하는 경우 디자인 레지스트리를 추가하는 ClickOnce를에 어떤 메커니즘이 없기 때문에

+0

나는 ClickOnce를가 UAC가 해제 된 경우에도 레지스트리를 변경할 수있을 것입니다 생각하지 않습니다. –

+2

사용자가 소유하고 있기 때문에 HKCU에서 항목을 변경할 수 있지만 모든 사용자에게 적용되는 HKLM 항목은 변경할 수 없습니다. – RobinDotNet

2

또한, 그것은하지 분명 ClickOnce를 배포를위한 후보 입니다 전역 어셈블리에 어셈블리를 공유하고 캐시 (GAC)를 설치하고 서비스를 설치하면 이 켜집니다.

http://msdn.microsoft.com/en-us/magazine/cc163973.aspx

+0

ClickOnce에서 레지스트리 키를 만들지는 않을 것 같습니다. 그들은 ClickOnce 배포 된 응용 프로그램에서 레지스트리 키를 만들려고합니다. – codeConcussion