2014-02-20 4 views
0

시나리오는 관리자로 서비스를 실행하고 있습니다.일시적으로 표고를 낮추는 방법

사용자 정의 코드를 실행하는 문구가 있습니다 (스크립팅을 고려하십시오). 그것은 어셈블리를 생성하고 타입을 생성하고 (코드를 기반으로) 메소드를 호출하기 위해 코드 롬 컴파일을 사용합니다.

설명 문구가 지속되는 동안 관리자 권한을 일시적으로 삭제 한 다음 나중에 복원하고 싶습니다.

+0

그래서 샌드 박스에서 코드를 신뢰할 수있는 실행 무엇이 널 멈추게 해? – Tarec

+0

나는 이것을 어떻게하는지 모른다. 나는 IDisposable을 구현하고 생성자에서 높이를 떨어 뜨리고 소멸자에서 그것을 복원하는 클래스를 만드는 것을 상상하고 있습니다. 그러나 호출이 높이를 떨어 뜨리고 복원하는 것이 무엇인지 알지 못합니다. 나중에 복원 할 수 있도록 높이의 현재 "상태"를 알아야 할 수도 있습니다. – Derek

+0

서비스에서 시작되는 별도의 프로세스에서 콜 아웃을 호출 할 수 있습니까? 가능하면 http://stackoverflow.com/q/1173630을 참조하십시오. – AlexD

답변

0

나는 당신이 묘사하는 방식으로 권한을 "떨어 뜨릴"수 있다고 생각하지 않는다. 귀하의 서비스가 사용자로 실행 중이며 해당 사용자에게 일정량의 액세스가 허용됩니다. Windows에 일시적으로 더 많은 권한 (UAC의 모든 것)을 부여하도록 요청할 수 있지만 사용자에게 줄 것을 요청할 수는 없습니다.

적절히 낮은 수준의 액세스 권한으로 스크립트를 실행하고 사용자 지정 코드 기간 동안 해당 사용자를 가장하기 위해 두 번째 사용자를 시스템에 만듭니다.

[편집] 내가 무슨 말을하는지 모르겠다. 이 링크에 따르면 UAC는 제한된 권한 집합을 만들어 해당 컨텍스트에서 코드를 실행함으로써 역순으로 구현됩니다.

http://weblogs.asp.net/kennykerr/archive/2006/09/29/Windows-Vista-for-Developers-1320-Part-4-1320-User-Account-Control.aspx

+0

당신은 확실히 맞습니다. 죄송합니다 ... – MarcE

관련 문제