다음 코드가 작동합니다. 내 콜백 메소드가 생성 될 때 프로그램의 출력과 함께 호출됩니다.System.Diagnostics.Process 다른 사용자를 가장 한 것
var proc = new System.Diagnostics.Process();
//proc.StartInfo.Domain = DOMAIN;
//proc.StartInfo.UserName = USERNAME;
//proc.StartInfo.Password = BuildPasswordString();
proc.StartInfo.UseShellExecute = false;
proc.StartInfo.FileName = EXEC_PATH;
proc.StartInfo.Arguments = EXEC_ARGS;
proc.StartInfo.RedirectStandardOutput = true;
proc.Start();
proc.OutputDataReceived += proc_OutputDataReceived;
proc.BeginOutputReadLine();
proc.WaitForExit();
그러나 사용자 자격 증명과 관련하여이 세 줄의 주석을 제거하면 모든 것이 작동하지 않습니다. 코드는 오류없이 실행되지만 프로세스가 실행되지 않고 콜백 메소드에서 출력이 수신되지 않습니다.
실행 프로세스와 일치하지 않는 특정 사용자의 자격 증명을 사용하면서 별도의 프로세스를 생성하고 생성 된 출력을 비동기식으로 수집하려면 어떻게해야합니까?
업데이트 : @ Dos095-러스의 대답 오프
건물, 내가 대신 ASP.NET의 콘솔 응용 프로그램과 같은 코드를 테스트했다. 그것은 효과가있다. 따라서 이것은 ASP.NET 환경에서 오류의 원인이되는 것입니다.
중복 : http://stackoverflow.com/questions/4624113/how-to-process-start-with-impersonated-domain-user –
실제로 나에게 중복되는 것처럼 보이지 않습니다. 그 질문은 다른 코드와 다른 증상을 가지고 있습니다 ... – RationalGeek