Как я могу заставить форму «Запуск от имени» появляться, когда кто-то пытается запустить мое настольное приложение .net? - PullRequest
2 голосов
/ 31 октября 2010

Мне нужно, чтобы во всплывающем окне «Запуск от имени» пользователь пытался запустить мое приложение (C # .NET 4, в Win XP), чтобы он мог легко войти в систему как другой пользователь. Это может быть в самом приложении (в коде C #) или в каком-либо другом предшествующем пакетном / исполняемом файле («модуль запуска») или тому подобное. Я не нашел способа выложить эту форму. Как это могло быть сделано?

спасибо.

Ответы [ 2 ]

1 голос
/ 31 октября 2010

Лучше всего, если вы хотите это сделать, - создать процесс начальной загрузки, который вызывает CredUIPromptForWindowsCredentials . Это создаст диалог, который будет запрашивать у пользователя учетные данные. Как только вы получите их учетные данные, используйте перегрузку Process.Start, которая принимает имя пользователя и пароль, которые вернул CredUIPromptForWindowsCredentials. Требуется немного Interop.

1 голос
/ 31 октября 2010

Имея в своем манифесте <requestedExecutionLevel level="requireAdministrator"/>, вы можете принудительно запустить приложение в качестве администратора. Это, однако, не включает в себя диалог RunAs. Если вы посмотрите на настройки из ярлыка, то увидите, что там также нет возможности справиться с этим.

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

...