2013-05-25 3 views
0

다른 프로세스의 메모리를 읽고 쓰고, 레지스트리 키를 많이 사용하고, 디스크의 파일을 읽고 쓰고, 웹 사이트에서 파일을 다운로드/배포하는 WPF 응용 프로그램을 만들었습니다. LOL 아니요, 트로이 목마가 아니므로 걱정하지 마십시오. D관리자 권한에 대한 의문점

Framework 4.5로 컴파일되었으므로 일반적으로 Windows Vista 이상 버전에서만 호환되므로 정상적으로 작동하려면 관리자 권한이 필요합니다 . 이제 ... 투명하게 필요한 모든 권한을 부여하기 위해 나는 다양한 가능성을 발견했다. 매니페스트에 다음 코드를 삽입

1) : 나는 간단하게 찾을 사람은

<requestedExecutionLevel level="requireAdministrator" uiAccess="false"/> 

2) UAC 경우 확인이 활성화되고 사용되는은과 같이 아닌 경우 관리자 권한을 가지고있는 경우 사용자에게 관리자 권한을 부여 할 것인지 묻습니다. 그런 다음 대답이 "예"인 경우 다음을 사용하여 상승 된 응용 프로그램 프로세스를 실행하십시오.

ProcessStartInfo.Verb = "runas"; 

그래서이 문제를 처리하는 가장 좋은 방법은 무엇입니까?

다른 질문이 있습니다. 사용 시작 후 바이트 배열에서 어셈블리를로드 내 응용 프로그램 :

Byte[] assemblyData; 

using (BinaryReader reader = new BinaryReader(new FileStream(filePath, FileMode.Open))) 
    assemblyData = reader.ReadBytes(Convert.ToInt32(fs.Length)); 

Assembly assembly = Assembly.Load(assemblyData); 
MethodInfo method = assembly.EntryPoint; 

if (method != null) 
{ 
    Object instance = assembly.CreateInstance(method.Name); 
    method.Invoke(o, null); 
} 

내 질문은 ... 총회는 위의 코드 (다른 WPF 응용 프로그램)의 동일한 권한이 메모리에서로드되는 것입니다 그것을로드 한 응용 프로그램? 지금이라면 관리자 권한을 다시 한 번 어떻게 처리해야합니까? 응용 프로그램이 동작의 대부분의 관리자 권한을 필요로하는 경우 당신은 응용 프로그램이 거의 다음 AsInvoker 권한으로 실행하고 그것을위한 응용 프로그램을 상승, 일어나지 1-2 작업 관리자 권한을 필요로하는 경우

답변

1

,

<requestedExecutionLevel level="requireAdministrator" uiAccess="false"/> 

를 사용 특정 작업.

읽고있는 어셈블리가 프로세스 메모리에로드되었으므로 응용 프로그램과 동일한 권한을 갖게됩니다.