Доступные диалоги UAC
25 января 2007
Были некоторые комментарии в дневнике в которых говорилось что диалоги UAC в Windows Vista недоступны и я только хотел убрать беспорядок здесь.
Первое, чтобы пояснить сцену. Когда пользователь пытается получить доступ к приложению или опции которая требует повышенные права для того чтобы запуститься, они видят вопрос UAC, вид которого меняется в зависимости от типа пользователя или типа приложения который пытается запуститься. Эта диаграмма показывает типы диалоговых окон которые вы можете увидеть и поток процессов, который вызывает каждый тип:
[Ссылка заблокирована: Зарегистрируйтесь!]
Также есть диалог запроса на пароль, который показывается если текущий пользователь не является администратором:
[Ссылка заблокирована: Зарегистрируйтесь!]
Эти запросы защищены от получения связи от других приложений так что вредоносное ПО не может эмулировать действия пользователей. Это очевидно проблема для читателей экрана или дркгие приложения которым нужно использовать UI Automation для того чтобы предоставлять взаимодействия с Интерфейсом Пользователя. Эта проблема все же имеет решение.
Чтобы получить доступ к запросам UAC -- или другим процессам которые идут с повышенными правами -- приложение должно доверяться системой и запускаться со специальными правами. Чтобы сделать это, приложение должно быть укомплектовано файлом типа *.manifest , который имет следующие элементы и атрибуты:
Код:
<trustInfo xmlms="urn:0073chemas-microsoft-com:asm.v3">
<security>
<requestedPrivileges>
<requestedExecutionLevel
level="highestAvailable"
UIAccess="true" />
</requestedPriveleges>
</security>
</trustInfo>
Важно, то что UIAccess должен быть включен, чтобы приложение имело доступ к запросам UAC.
Есть статья в MSDN в которой есть больше информации:
[Ссылка заблокирована: Зарегистрируйтесь!]
----------------------------------------------------------------------------------------------------------------------
Источник:
[Ссылка заблокирована: Зарегистрируйтесь!]
Перевод:
[Ссылка заблокирована: Зарегистрируйтесь!]