Как запустить внешнюю программу (процесс) от имени пользователя .net? - PullRequest
0 голосов
/ 14 марта 2012

В моем веб-приложении .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();

1 Ответ

0 голосов
/ 18 июня 2012

Как указал Яхья, это было вызвано тем, что я пытался вызвать программу с другой учетной записью пользователя - и Windows не хотела, чтобы я это делал.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...