В моем веб-приложении .net мне нужно запустить другую программу как новый процесс - под другой учетной записью пользователя (с более высоким уровнем привилегий). Мой код выполняется без ошибок, но я никогда не получаю никаких выходных данных (я пытался перенаправить выходные данные), и программа, кажется, не выполняется вообще. Это не ошибка с деталями аутентификации пользователя, я попытался обмануть имя пользователя и, конечно же, выдает допустимое исключение в этом случае. Ничего не добавляется в журнал событий.
SecureString passwordString = new SecureString();
foreach (char c in "MyPassword")
{
passwordString.AppendChar(c);
}
var process = new System.Diagnostics.Process
{
StartInfo =
{
UserName = "myuser", Password = passwordString, Domain = "MyDomain",
WorkingDirectory = HttpContext.Request.MapPath("~/bin"),
UseShellExecute = false,
FileName = HttpContext.Request.MapPath("~/bin") + "\\ServerCertificateImporter.exe",
Arguments = instanceLocationId.ToString(),
CreateNoWindow = true,
RedirectStandardInput = false,
RedirectStandardOutput = false,
RedirectStandardError = false
}
};
process.Start();
process.WaitForExit();
process.Close();