Как указать учетные данные пользователя для приложения, запускаемого одним кликом?
Для обычного.exe-файла я всегда могу щелкнуть правой кнопкой мыши и выбрать "запустить как..". Как можно запустить приложение Click-Once с разными учетными данными аналогичным образом?
Я говорю о самом приложении, а не об установщике.
3 ответа
Ответ на самом деле нет, вы не должны этого делать. Приложения ClickOnce устанавливаются под профилем пользователя и принадлежат только этому пользователю. Они не будут и не будут работать как установка для всех пользователей.
Также обратите внимание, что если дважды щелкнуть файл [exe] (расположение которого меняется каждый раз, когда происходит обновление), он не будет искать обновления, он не будет проверять файлы, чтобы убедиться, что они не были подделаны с. Другими словами, он не будет работать как приложение ClickOnce.
Я также считаю, что передача имени пользователя и пароля в строке запроса нецелесообразна, поскольку любой, кто запускает fiddler, charles или любой другой анализатор сетевого трафика, сможет увидеть учетные данные.
Это на самом деле возможно, вам просто нужно сделать это в два этапа. Сначала вам нужно запустить ClickOnce (dfsvc.exe
) как пользователь, которого вы пытаетесь олицетворять, а затем вы можете запустить приложение развертывания, используя rundll32
, что-то вроде этого:
(Из командной строки)
1.- Нажмите один раз:
runas /user:domain\user "c:\Windows\Microsoft.NET\Framework\v4.0.30319\dfsvc.exe"
2.- Запустите приложение:
runas /user:domain\user "rundll32 c:\Windows\System32\dfshim.dll,ShOpenVerbApplication http://someurl.com/tool.application"
Обратите внимание, что вам нужно запускать dfsvc.exe только один раз, если вам нужно запустить несколько приложений, и он исчезнет через некоторое время, как только вы закроете все свои олицетворенные щелчки один раз.
Вы говорите об одномоментном процессе или о том, что должно происходить каждый раз, когда ваш код запускается на нескольких компьютерах? Потому что, если вы просто хотите лично запустить приложение ClickOnce с повышенными разрешениями, это довольно просто. Нажмите, когда приложения будут находиться в%LOCALAPPDATA%\Apps\2.0[ObfuscatedFolderName]. Просто найдите папку вашего приложения (метки времени должно быть достаточно), затем щелкните правой кнопкой мыши по вашему EXE и запустите от имени администратора.
Если вы хотите сделать это в коде, возможно, самое простое решение - создать приложение-оболочку вокруг вашего кода, которое запрашивает повышенные разрешения в коде. Вот такой пример.