我有以下代碼正在工作。我的回調方法在生成時會隨程序的輸出調用。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