Как запустить процесс IIS с определенным именем пользователя и паролем - PullRequest
5 голосов
/ 16 мая 2011

Я пытаюсь запустить приложение с нашего внутреннего сайта. Когда я использую Process.Start("notepad");, я вижу, что процесс блокнота запускается на нашем веб-сервере с идентификатором по умолчанию, указанным в настройке пула приложений.

Но я должен начать процесс с определенного имени пользователя и пароля. Поэтому я попытался запустить эту строку кода

string password = "XXXXX";
System.Security.SecureString securePwd = new System.Security.SecureString();
foreach (char c in password)
{
    // Append the character to the password.
    securePwd.AppendChar(c);
}
Process.Start("notepad", "username", securePwd, "domain");

В этом случае я даже не вижу ни одного процесса блокнота, запущенного на веб-сервере. Строки кода выполняются, потому что, когда я передаю неверный пароль, я вижу, что моя веб-страница выдает ошибку «неверное имя пользователя или пароль».

Ответы [ 2 ]

4 голосов
/ 23 мая 2011

Спасибо всем за ваш ответ.Здесь у меня есть решение, и теперь мой процесс начинается с имитирующего пользователя.

http://support.microsoft.com/default.aspx?scid=kb;EN-US;889251

Спасибо.

0 голосов
/ 17 мая 2011

Код, который вы написали, выглядит хорошо для меня.Возможно, проблема в

Я даже не вижу никакого процесса блокнота

Я бы попробовал следующее

Захватить идентификатор и записать его внапример, клиент

Process note = Process.Start("notepad", "username", securePwd, "domain");
Response.Write( note.ID ); //Or whatever mechanism you prefer. 

Затем войдите на сервер и с помощью PowerShell запросите процесс

Например,

PS C:\> get-process notepad  | Select ProcessName, Id 
ProcessName                                                                  Id
-----------                                                                  --
notepad                                                                    5512

Идентификатор должен совпадать с тем, что было написано клиенту.

...