在我的.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();
答案 0 :(得分:0)
正如Yahia指出的那样,这是因为我试图使用不同的用户帐户调用程序 - 而且Windows不希望我这样做。