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

Примечание.

Эта документация предназначена для разработчиков .NET Framework, желающих использовать управляемые классы автоматизации пользовательского интерфейса, определенные в пространстве имен System.Windows.Automation. Последние сведения об автоматизации пользовательского интерфейса см. в статье API автоматизации Windows. Автоматизация пользовательского интерфейса.

В этом обзоре описана модель безопасности для Microsoft модель автоматизации пользовательского интерфейса в Windows Vista.

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

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

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

Задачи, требующие повышенных привилегий

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

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

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

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

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

<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
  <security>
    <requestedPrivileges>
      <requestedExecutionLevel
        level="highestAvailable"
        uiAccess="true" />
    </requestedPrivileges>
  </security>
</trustInfo>

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

uiAccess значение false по умолчанию; То есть, если атрибут опущен или отсутствует манифест сборки, приложение не сможет получить доступ к защищенному пользовательскому интерфейсу.