2015-02-12 4 views
0

У нас есть приложение формы выигрыша (построено на 4.0-клиентском профиле клиента), которое запускается из веб-приложения с помощью настраиваемого протокола.Избегайте пароля администратора UAC

Для пользователя, не являющегося администратором (например, Power user, Standard User), при запуске приложения система выдает UAC (в системе настройки UAC установлены на «Always Notify», и это должно быть то же самое) просят пароль администратора.

Обратите внимание, что мы используем манифест для запуска приложения с повышенными разрешениями для администратора привилегий

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

С уважением,

Karthik

+0

Ну, если приложение требует прав администратора, вся суть UAC должен спросить разрешения ...? –

+0

Итак, у вас запущено приложение, для которого требуется привилегия администратора, но вы не хотите, чтобы он запрашивал пароль администратора? Это было бы плохо, если бы это было возможно :) Но вы можете установить службу Windows-хоста, которая делает все, что вам нужно, чтобы запустить ее, запустить ее с разрешениями системы/администратора по умолчанию и попросить клиентское приложение просто вызвать ее и сообщить ей, что делать :) – Gerino

+0

Спасибо за быстрый ответ.Однако в соответствии с рабочим процессом его необходимо запустить с веб-страницы – Karthikkv

ответ

1

Простой ответ: вы не можете. Цель UAC - заблокировать приложение от выполнения действий, требующих административных привилегий, без одобрения пользователя. Это функция безопасности, встроенная в ОС, так что никакое вредоносное ПО не подвергает компьютер опасности без одобрения пользователя.

Так как это функция безопасности, вы не можете обойти ее без специального отключения пользователем UAC в системе.

1

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

  • Удалить манифест из исполняемого файла. Windows больше не потребует повышения до того, как приложение будет выполнено.

  • При инициализации вашего приложения (желательно, прежде чем оно станет видимым) определить, является ли пользователь, выполняющий приложение, администратором.

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

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

Если вы делаете это, как это администратор получит приглашение UAC, чтобы поднять приложение в то время как не-администраторы не получат какие-либо строки (а также никаких привилегий администратора).

Вы можете получить подробную информацию о том, как выполнить некоторые из этих задач в an answer to a question on Stack Overflow about elevating process privilege programmatically

Смежные вопросы