Начать процесс с учетными данными по умолчанию - PullRequest
1 голос
/ 17 февраля 2012

Я запускаю процесс, используя свои учетные данные, но я хотел использовать учетные данные по умолчанию, я имею в виду использование текущего имени пользователя и пароля, не используя следующий код:

var pass = new SecureString();
pass.AppendChar('p');
pass.AppendChar('a');
pass.AppendChar('s');
pass.AppendChar('s');
pass.AppendChar('w');
pass.AppendChar('o');
pass.AppendChar('r');
pass.AppendChar('d');
Process.Start("file.txt", Environment.UserName, pass, "");

Поскольку приложение будетработать на разных компьютерах, поэтому он должен получить текущие учетные данные и использовать их.

РЕДАКТИРОВАТЬ

Проблема в том, что файл, который я хочу запустить, представляет собой файл .bat, который будет выполнять некоторые команды cmdи ему необходимо предоставить учетные данные для использования

Ответы [ 3 ]

2 голосов
/ 17 февраля 2012

Я не понимаю: если вы хотите выполнить процесс, используя учетные данные по умолчанию, просто не передавайте ничего:

Process.Start("file.txt");

Если вам нужен более сложный синтаксис, перенаправьте ввод / вывод, спрячьте окноили другие вещи, которые вы можете использовать ProcessStartInfo .

ИЗМЕНЕНО после редактирования пользователя:
Вы просто не можете восстановить пароль пользователя, это не разрешено.
Как сообщается в этой ссылке :

Вы можете получить текущую идентификационную информацию пользователя, под которым работает текущий поток (не обязательно зарегистрированный пользователь), с помощью WindowsIdentity.GetCurrent().
В качестве альтернативы вы можете получить имя пользователя, вошедшего в систему, через свойство Environment.UserName.
Однако пользователь, выполняющий текущий процесс, не гарантируется.
Не существует API-интерфейса Windows для получения пароля пользователя, так какпароли не хранятся в Windows.
Вместо этого Windows сохраняет одностороннюю хэшированную версию.

1 голос
/ 17 февраля 2012

Просто используйте Process.Start(@"Path"). Не предоставляя учетные данные, контекст текущего пользователя принимается.

0 голосов
/ 17 февраля 2012

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

...