2014-01-29 11 views
1

관리자 권한으로 실행중인 응용 프로그램이 있습니다. 권한은 응용 프로그램 매니페스트를 사용하여 자동으로 에스컬레이션됩니다.상승 된 응용 프로그램에서 사용자 권한 작업 실행

<requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3"> 
    <requestedExecutionLevel level="requireAdministrator" uiAccess="false" /> 
    </requestedPrivileges> 

이 앱에서 앱을 시작한 사용자로 일부 코드를 실행해야하지만 고도가 없습니다. 어떻게 구현할 수 있습니까?

+1

[현재 사용자로 가장하려면] (http://stackoverflow.com/a/7250145/1250033) 방법을 구현해야합니다. – rae1

+0

가장이 효과적 일 수 있지만 응용 프로그램이 권한 상승없이 시작되어 관리자 탭을 수행하기 위해 관리자의 상승 된 복사본을 만들도록 다시 아키텍처에 더 깨끗할 수 있습니다. (아무 것도 없으면 부모 프로세스가 자신의 PID를 명령 줄의 하위 프로세스로 전달하여 가장 할 프로세스를 파악하지 못하게됩니다.) –

답변

2

impersonation을 사용하여 원하는 결과를 얻을 수 있습니다. 암호없이 현재 사용자를 가장하려면 사용자가 실행 한 다른 프로세스를 찾아 토큰을 가져와야합니다. 탐색기가 좋습니다. Here은 전체 샘플 코드입니다.

+0

가장은 사용자 암호가 필요합니까? 매번 사용자에게 암호를 묻지 않고도 그 작업을 수행 할 수 있습니까? –

+0

내 업데이트를 참조하십시오. – krowe