Модель брокера администраторов
В модели брокера администраторов приложение делится на две программы. Одна из программ выполняется как стандартный пользователь, а другая выполняется с правами администратора.
С помощью манифеста приложения помечайте стандартную пользовательскую программу запрошенной executionLevel asInvoker и помечайте административную программу запрошенным запросомExecutionLevelтребуетсяAdministrator. Сначала пользователь запускает стандартную пользовательную программу. Когда пользователь пытается выполнить операцию, требующую полного маркера доступа администратора, стандартная пользовательская программа вызывает функцию ShellExecute для запуска административной программы. Функция ShellExecute предложит пользователю утвердиться перед запуском приложения с полным маркером доступа администратора пользователя. Затем программа администрирования может выполнять задачи, требующие прав администратора.
Административная программа не полностью изолирована от стандартной пользовательской программы. Административная программа может включить взаимодействие между процессами с стандартной пользовательской программой. Однако такая связь ограничена политикой обязательной целостности по умолчанию. Сведения об обязательных соображениях целостности см. в разработке приложений для запуска на низком уровне целостности.
Для модели брокера администраторов можно использовать следующее:
- Мастеры разработки. Когда мастер оборудования определяет, что необходимый драйвер не установлен на компьютере или расположен в утвержденном расположении предприятия, он вызывает приложение с повышенными привилегиями с возможностью перемещения драйвера в хранилище компьютеров.
- Autorun.exe вызова Setup.exe. Когда пользователь запускает программное обеспечение с компакт-диска, Autorun.exe, который выполняется как стандартный пользователь, запускается Setup.exe, который запускается от имени администратора, чтобы установить программное обеспечение на компьютер.
Ниже перечислены недостатки использования модели брокера администраторов:
- Переходы из приложения в приложение могут быть запутанными для пользователя. Пользователю может быть трудно сообщить, почему новое приложение отображается на мониторе.
- Между двумя приложениями может быть трудно передать сведения о состоянии. Например, эта модель не будет использоваться для передачи сведений о состоянии между стандартной панелью управления пользователем (CPL) и его коллегой-администратором, чтобы разрешить той же CPL иметь административные и стандартные функции пользователей. CPL стандартного пользователя должен хранить свое состояние где-то.
- При разделения функциональных возможностей между двумя программами может быть много реплицированного кода.
Связанные разделы