У меня есть приложение, которое использует текущие учетные данные пользователя для подключения к серверу и выполнения некоторых тестов производительности.Запуск процесса с диалогом «Запуск от имени»
По многочисленным причинам олицетворение не является жизнеспособным вариантом. Вместо этого я хотел бы дать пользователю кнопку «Switch User», которая перезапускает процесс, но показывает диалог Run As...
.
Я не вижу никакой опции на Process.Start()
или ассоциированном ProcessStartInfo
. Существует возможность указать имя пользователя/пароль, которые я захватил, но я бы предпочел не участвовать в этом процессе и просто позволить окнам обрабатывать его. Просто использование глагола runas
просто вызывает повышение, но если текущий пользователь является локальным администратором, нет возможности указать другое имя пользователя.
Есть ли способ сделать это? Я знаю, что есть командная строка runas.exe
, но это не очень хорошо.
Вы пробовали 'RunAsUser' глагол вместо этого? – Jester
@Jester Я нашел этот глагол, задав этот вопрос. К сожалению, когда это используется, 'Process.Start' возвращает' null' вместо идентификатора процесса (он возвращается, когда диалог виден, перед запуском процесса). Кажется, что диалог размещен текущим процессом до тех пор, пока он не будет успешно завершен. Это означает, что нет способа проверить запуск нового процесса, и если я скоро закрою старый, он удалит диалог. На данный момент я использую 'RunAsUser' и просто полагаюсь на пользователя, чтобы закрыть старый процесс, но это настоящий kludge. Я должен был добавить это к моему вопросу. Благодарю. – Basic