Поделиться через


Общие сведения о безопасности модели автоматизации пользовательского интерфейса

ПримечаниеПримечание

Эта документация предназначена для разработчиков на платформе .NET Framework, которым требуется использовать управляемые классы UI Automation, определенные в пространстве имен System.Windows.Automation.Последние сведения о UI Automation см. на веб-странице Windows Automation API: UI Automation.

В этом обзоре описывается модель безопасности для Microsoft UI Automation в Windows Vista.

В этом разделе содержатся следующие подразделы.

  • Контроль учетных записей
  • Задачи, для которых требуются привилегии более высокого уровня
  • Файлы манифеста

Контроль учетных записей

Безопасность является основной чертой Windows Vista и среди нововведений отмечается возможность пользователям входить в систему под стандартными учетными записями (т. е. не с учетной записью администратора) и запускать приложения и службы, для которых требуются более высокие привилегии.

В Windows Vista большинство приложений оснащены стандартным или администраторским маркером. Если приложение не может быть идентифицировано как административное приложение, по умолчанию оно запускается в качестве стандартного приложения. Перед запуском приложения, идентифицированного как административное, Windows Vista запрашивает у пользователя разрешение на запуск приложения с повышенным уровнем разрешений. Запрос на продолжение отображается по умолчанию, даже если пользователь является членом локальной группы администраторов, поскольку администраторы работают как стандартные пользователи до тех пор, пока для запуска приложения или системного компонента не потребуются разрешения учетной записи администратора.

Задачи, для которых требуются привилегии более высокого уровня

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

Клиенты автоматизации пользовательского интерфейса должны взаимодействовать с другими процессами, а некоторые, возможно, выполняться на более высоком уровне привилегий. Для клиентов также может потребоваться доступ диалоговым окнам системы, не видимым для других процессов в обычном режиме. Поэтому клиенты UI Automation должны быть надежными для системы и должны запускаться с повышенными привилегиями.

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

Файлы манифеста

Для доступа к защищенному системой UI, приложения должны быть построены с файлом манифеста, включающим специальный атрибут. Этот атрибут uiAccess включается в тег requestedExecutionLevel следующим образом.

<trustInfo xmlns="urn:0073chemas-microsoft-com:asm.v3">

    <security>

        <requestedPrivileges>

        <requestedExecutionLevel

            level="highestAvailable"

            UIAccess="true" />

        </requestedPrivileges>

    </security>

</trustInfo>

Значение атрибута level в этом коде приводится только для примера.

UIAccess по умолчанию имеет значение false, то есть если атрибут опущен или отсутствует манифест для сборки, приложение не сможет получить доступ к защищенному UI.

Дополнительные сведения о безопасности Windows Vista, подписи приложений и создании манифеста сборки см. в разделе "Developer Best Practices and Guidelines for Applications in a Least Privileged Environment" на странице MSDN.