Контроль учетных записей пользователей
Заметка
Это руководство по проектированию было создано для Windows 7 и не было обновлено для более новых версий Windows. Большая часть рекомендаций по-прежнему применяется в принципе, но презентация и примеры не отражают наше текущее руководство по проектированию.
Хорошо разработанный интерфейс управления учетными записями пользователей помогает предотвратить нежелательные изменения в системе таким образом, что является предсказуемым и требует минимальных усилий.
С полной поддержкой управления учетными записями пользователей интерактивные администраторы обычно выполняются с минимальными привилегиями пользователя, но могут самостоятельно повысить уровень для выполнения административных задач, предоставив явное согласие с пользовательским интерфейсом согласия. Такие административные задачи включают установку программного обеспечения и драйверов, изменение системных параметров, просмотр или изменение других учетных записей пользователей и запуск средств администрирования.
В их наименее привилегированном состоянии администраторы называются защищенными администраторами. В их состоянии с повышенными привилегиями они называются администраторами с повышенными привилегиями. В отличие от этого, пользователи уровня "Стандартный" не могут повысить уровень самостоятельно, но администратор может попросить администратора повысить их с помощью пользовательского интерфейса учетных данных. Встроенная учетная запись администратора не требует повышения прав.
снимок экрана
Пользовательский интерфейс согласия, используемый для повышения привилегий защищенных администраторов.
снимок экрана пароля
Пользовательский интерфейс учетных данных, используемый для повышения уровня стандартных пользователей.
UAC предоставляет следующие преимущества:
- Это уменьшает количество программ, выполняемых с повышенными привилегиями, поэтому помогает предотвратить случайное изменение параметров системы и помочь предотвратить получение доступа на уровне системы "вредоносными программами". Если повышение прав запрещено, вредоносные программы могут влиять только на данные текущего пользователя. Без повышения прав вредоносные программы не могут вносить системные изменения или влиять на других пользователей.
- Для управляемых сред, хорошо разработанные интерфейсы UAC позволяют пользователям работать более эффективно при выполнении в качестве стандартных пользователей, удаляя ненужные ограничения.
- Он дает пользователям уровня "Стандартный" возможность попросить администраторов предоставить им разрешение на выполнение административных задач в текущем сеансе.
- В домашних средах он обеспечивает более широкий контроль над изменениями системы, включая установленное программное обеспечение.
разработчики : Сведения о реализации см. в разделе Перепроектирование пользовательского интерфейса для совместимости UAC.
В Windows Vista защищенные администраторы могут получать уведомления обо всех системных изменениях или нет. Параметр UAC по умолчанию — уведомлять обо всех изменениях независимо от их происхождения. Когда вы получите уведомление, рабочий стол будет неактивен, и вы должны утвердить или запретить запрос в диалоговом окне UAC, прежде чем выполнять все остальные действия на компьютере. Неактивный режим рабочего стола называется защищенным рабочим столом, так как другие программы не могут выполняться, пока он неактивен.
В Windows 7 представлены два промежуточных параметра UAC для защищенных администраторов, а также два из Windows Vista. Первое — уведомлять пользователей только о том, когда программа вносит изменения, поэтому администраторы автоматически повышаются при внесении изменений. Это параметр UAC по умолчанию в Windows 7, а также использует безопасный рабочий стол.
Второй промежуточный параметр в Windows 7 совпадает с первым, за исключением того, что он не использует безопасный рабочий стол.
В Windows 7 представлены два промежуточных параметра UAC.
Примечание. Рекомендации, связанные с написанием кода для поддержки контроля учетных записей пользователей, представлены в отдельной статье.
Концепции проектирования
целей
Хорошо разработанный интерфейс управления учетными записями пользователей имеет следующие цели:
- Исключите ненужные повышения прав. Пользователям необходимо повысить уровень только для выполнения задач, требующих прав администратора. Все остальные задачи должны быть разработаны для устранения необходимости повышения прав. Часто устаревшее программное обеспечение требует прав администратора ненужным путем записи в разделы реестра HKLM или HKCR, а также файлы программы или системные папки Windows.
- Быть предсказуемым. Стандартные пользователи должны знать, какие задачи требуют от администратора выполнения или не могут выполняться вообще в управляемых средах. Администраторы должны знать, какие задачи требуют повышения прав. Если они не могут предсказать необходимость повышения точности, они, скорее всего, дают согласие на административные задачи, когда они не должны.
- Требуется минимальное усилие. Задачи, требующие прав администратора, должны быть разработаны для обеспечения единого повышения прав. Задачи, требующие нескольких повышений, быстро станут емкими.
- Вернитесь к наименьшим привилегиям. После завершения задачи, требующей прав администратора, программа должна вернуться к крайнему состоянию привилегий.
поток задач "Повышение прав"
Если для задачи требуется повышение прав, она выполняет следующие действия.
Точка входа. Задачи, требующие немедленного повышения прав, когда UAC полностью включен, имеют точки входа, помеченные щитом UAC. В этом случае пользователи должны ожидать видеть пользовательский интерфейс повышения прав сразу после нажатия таких команд, и они должны быть дополнительными осторожными, когда они видят пользовательский интерфейс повышения прав от задач, у которых нет щита.
В этом примере элементы панели управления родительским контролем и учетными записями пользователей требуют повышения прав.
Если UAC частично включен или отключен полностью, экран UAC по-прежнему отображается, чтобы указать, что задача включает изменения на уровне системы и, следовательно, требует повышения прав, даже если пользователь может не видеть пользовательский интерфейс повышения прав. Всегда отображает экран UAC для задач, требующих повышения прав, обеспечивает простой и прогнозируемый пользовательский интерфейс.
Возвышенность. Для защищенных администраторов запросите согласие задачи с помощью пользовательского интерфейса согласия. Для стандартных пользователей задача запрашивает учетные данные администратора с помощью пользовательского интерфейса учетных данных.
В этих примерах показан пользовательский интерфейс учетных данных и пользовательский интерфейс согласия.
Отдельный процесс с повышенными привилегиями. Внутри системы создается новый процесс с повышенными привилегиями для выполнения задачи.
Вернуться к наименьшим привилегиям. При необходимости вернитесь к наименьшим привилегиям, чтобы выполнить все действия, которые не требуют повышения прав.
Обратите внимание, что задачи не помнят состояния с повышенными привилегиями. Например, если пользователь перемещается назад и вперед через точку входа с повышением прав в мастере, пользователь должен каждый раз повысить уровень.
Шаблоны использования
Контроль учетных записей пользователей имеет несколько шаблонов использования (в порядке предпочтения):
Работа для стандартных пользователей. Создайте функцию для всех пользователей, ограничив ее область текущим пользователем. При ограничении параметров текущему пользователю (в отличие от системного), вы полностью устраняете необходимость в пользовательском интерфейсе повышения прав и позволяет пользователям выполнять задачу.
неправильно:
В этом примере пользователи Windows XP должны иметь права администратора для просмотра или изменения текущего часового пояса.
правильно:
В этом примере функция часового пояса была изменена в Windows 7 и Windows Vista для работы для всех пользователей.
Отдельные элементы пользовательского интерфейса для стандартных пользователей и администраторов. Четко отделяет задачи пользователей уровня "Стандартный" от административных задач. Предоставление всем пользователям доступа к полезным сведениям только для чтения. Четко определите административные задачи с помощью щита UAC.
В этом примере элемент панели управления системы показывает состояние для всех пользователей, но изменение параметров на уровне системы требует повышения прав.
Разрешить стандартным пользователям пытаться выполнить задачу и повысить уровень сбоя. Если пользователи уровня "Стандартный" могут просматривать сведения и могут вносить некоторые изменения без повышения прав, разрешить им доступ к пользовательскому интерфейсу и повысить их только в том случае, если задача завершается ошибкой. Этот подход подходит, если у пользователей уровня "Стандартный" ограниченный доступ, например с свойствами собственных файлов в проводнике Windows. Он также подходит для параметров на страницах гибридного концентратора панели управления.
В этом примере пользователь попытался изменить свойства файла программы, но не имеет достаточных привилегий. Пользователь может повысить уровень и повторить попытку.
Работа только для администраторов. Используйте этот подход только для функций и программ администратора! Если функция предназначена только для администраторов (и не имеет путей навигации или полезных сведений только для чтения для стандартных пользователей), вы можете запрашивать учетные данные администратора в точке входа перед отображением любого пользовательского интерфейса. Используйте этот подход для длительных мастеров и потоков страниц , если для всех путей требуются права администратора.
Если вся программа предназначена только для администраторов, пометьте ее, чтобы получить учетные данные администратора для запуска. В Windows отображаются такие значки программы с наложением щита UAC.
В этом примере программе требуются права администратора для запуска.
Руководящие принципы
Значок щита UAC
элементы управления отображением с экраном UAC, чтобы указать, что задача требует немедленного повышения прав, если UAC полностью включена, даже если UAC в настоящее время не полностью включен. Если все пути мастера и потока страниц требуют повышения прав, отобразите экран UAC в точке входа задачи. Правильное использование щита UAC помогает пользователям прогнозировать, когда требуется повышение прав.
Если программа поддерживает несколько версий Windows, отобразите экран UAC, если для одной версии требуется повышение прав. Так как Windows XP никогда не требует повышения прав, рекомендуется удалить экраны UAC для Windows XP, если это можно сделать согласованно и без ущерба для производительности.
Не отображайте экран UAC для задач, которые не требуют повышения прав в большинстве контекстов. Поскольку этот подход иногда вводит в заблуждение, предпочтительный подход — использовать правильную экранированную контекстную команду.
Так как команда "Создать папку" требует повышения прав только при использовании в системных папках, она отображается без щита UAC.
Экран UAC можно отобразить на следующих элементах управления:
Кнопки команд :
Кнопка команды, требующая немедленного повышения прав.
ссылки на команды :
Ссылка на команду, требующая немедленного повышения прав.
ссылки :
экранов uac
Ссылка, требующая немедленного повышения прав.
меню :
Раскрывающееся меню, требующее немедленного повышения прав.
Так как задачи не помнят состояния с повышенными привилегиями, не изменяйте экран UAC для отражения состояния.
Отображает экран UAC, даже если контроль учетных записей пользователя отключен или пользователь использует встроенную учетную запись администратора. Согласованное отображение экрана UAC проще программировать и предоставляет пользователям информацию о характере задачи.
Возвышенность
По возможности задачи проектирования, выполняемые стандартными пользователями без повышения прав. Предоставление всем пользователям доступа к полезным сведениям только для чтения.
Повышение уровня на основе каждой задачи, а не на основе каждого параметра. Не смешивайте стандартные параметры пользователя с административными параметрами на одной странице или в диалоговом окне. Например, если стандартные пользователи могут изменить некоторые, но не все параметры, разделите эти параметры как отдельную область пользовательского интерфейса.
неправильно:
В этом примере параметры пользователей уровня "Стандартный" неправильно перемешиваются с административными параметрами.
правильно:
В этом примере параметры изменения даты и времени находятся в отдельном диалоговом окне, доступном только администраторам. Параметры часового пояса доступны для стандартных пользователей и не смешиваются с административными параметрами.
Не учитывайте необходимость повышения при определении необходимости отображения или отключения элемента управления. Это связано с тем, что:
- В неуправляемых средах предполагается, что стандартные пользователи могут повысить уровень, запрашивая администратора. Отключение элементов управления, требующих повышения прав, не позволит пользователям иметь права администратора.
- В управляемых средах предполагается, что стандартные пользователи вообще не могут повысить уровень. Удаление элементов управления, требующих повышения прав, не позволит пользователям знать, когда перестать искать.
, чтобы устранить ненужные повышенные привилегии:
- Если для задачи может потребоваться повышение прав, повысить их как можно позже. Если задача требует подтверждения , отобразите пользовательский интерфейс повышения прав только после подтверждения пользователя. Если для задачи всегда требуется повышение прав, повышение уровня в точке входа.
- После повышения будьте повышенными, пока повышенные привилегии больше не требуются. Пользователям не нужно несколько раз повышать уровень для выполнения одной задачи.
- Если пользователи должны повысить уровень, чтобы внести изменения, но не вносить никаких изменений, оставьте кнопки положительной фиксации включенными, но обработайте фиксацию как отмену. Это устраняет необходимость простого закрытия окна пользователями.
- неправильно:
-
- В этом примере кнопка "Сохранить изменения" отключена, чтобы избежать ненужного повышения прав, но становится включенной при изменении выбора пользователей. Тем не менее, кнопка фиксации отключена делает его похожим на пользователей действительно не имеет выбора.
Не отображайте сообщение об ошибке при сбое задач, так как пользователи не решили повысить уровень. Предположим, что пользователи намеренно решили не продолжать работу, поэтому они не будут рассматривать эту ситуацию как ошибку.
неправильно:
В этом примере восстановление Fabrikam неправильно выдает сообщение об ошибке, когда пользователь решит не повысить уровень.
Не отображайте предупреждения, чтобы объяснить, что пользователям может потребоваться повысить свои привилегии для выполнения задач. Позвольте пользователям самостоятельно обнаружить этот факт.
Отображать экран UAC и пользовательский интерфейс повышения прав на основе следующей таблицы:
Объект Обстоятельство Где поместить экран UAC Когда следует повысить Программа Вся программа предназначена только для администраторов.
Экран UAC наложение на значок программы.Отображение пользовательского интерфейса повышения прав при запуске. Команда Вся команда предназначена только для администраторов.
Экран UAC на кнопке или ссылке.Отображение пользовательского интерфейса повышения прав при нажатии кнопки или ссылки, но после любых подтверждений. Команда Команда отображает полезные сведения, доступные только для чтения для всех пользователей, но изменения требуют прав администратора.
Экран UAC на кнопке команды или ссылка, чтобы внести изменения.Отображение пользовательского интерфейса повышения прав при нажатии кнопки команды, но после любых подтверждений. Команда Стандартные пользователи могут просматривать сведения и, возможно, вносить некоторые изменения без повышения прав. разрешить стандартным пользователям пытаться и повысить уровень сбоя.
Не показывать экран UAC для команды, но показывать его для точки входа с повышением прав, если команда завершается ошибкой.Отображение пользовательского интерфейса повышения прав при повторных попытках пользователя. Шаг задачи Все последующие шаги требуют повышения прав. экранов uac
Экран UAC на кнопке "Далее" (или эквивалент).Отображение пользовательского интерфейса повышения прав при нажатии кнопки "Далее" или "Другая фиксация". Шаг задачи Для некоторых ветвей требуется повышение прав. экранов uac
Экран UAC по ссылкам команд, которым требуется повышение прав.Отображение пользовательского интерфейса повышения прав при щелчке связей команд с экраном UAC.
Пользовательский интерфейс повышения прав
- Если пользователь предоставляет учетную запись, которая не является допустимой (имя или пароль) или не имеет прав администратора, просто переиграйте пользовательский интерфейс учетных данных. Не отображайте сообщение об ошибке.
- Если пользователь отменяет пользовательский интерфейс учетных данных, верните пользователя обратно в исходный пользовательский интерфейс. Не отображайте сообщение об ошибке.
- Если контроль учетных записей пользователей отключен и пользователь уровня "Стандартный" пытается выполнить задачу, требующую повышения прав, укажите сообщение об ошибке, указывающее"Эта задача требует прав администратора. Для выполнения этой задачи необходимо войти с помощью учетной записи администратора".
В этом примере контроль учетных записей пользователя отключен, поэтому сообщение об ошибке объясняет, что пользователь должен использовать учетную запись администратора.
Мастера
- Не повышайте несколько раз. После повышения мастер должен оставаться повышенным.
- Если задача выполняется в мастере, поместите экран UAC на кнопку "Далее" страницы фиксации (которая должна быть предоставлена более определенной метки). Когда пользователь фиксирует:
- Если следующая страница является страницей "Ход выполнения", перейдите к этой странице и модально отобразите пользовательский интерфейс повышения прав. После успешного повышения прав выполните задачу.
- Если следующая страница является страницей завершения, перейдите к этой странице (но временно замените его содержимое "Ожидание разрешения...") и модически отображает пользовательский интерфейс повышения прав. После успешного повышения прав выполните задачу и отобразите содержимое страницы завершения.
- Если пользователь отменяет пользовательский интерфейс повышения прав, вернитесь на страницу "Фиксация". Это позволяет пользователю повторить попытку.
- Если задача выполняется после завершения мастера, поместите экран UAC на кнопку "Готово" страницы фиксации (которая должна быть предоставлена более определенных меток). Когда пользователь фиксирует:
- Оставаться на странице фиксации и модически отображать пользовательский интерфейс повышения прав. После успешного повышения прав закройте мастер.
- Если пользователь отменяет пользовательский интерфейс повышения прав, вернитесь на страницу "Фиксация". Это позволяет пользователю повторить попытку.
- Для длительных мастеров, предназначенных только для администраторов, можно запрашивать учетные данные администратора в точке входа, прежде чем отображать любой пользовательский интерфейс.
СМС
- Не используйте многоточие, так как команда требует повышения прав. Необходимость повышения указывается с помощью щита UAC.
Документация
При обращении к элементу управления учетными записями пользователей:
- Обратитесь к функции как контроль учетных записей пользователей (при первом упоминании) или UAC (при последующем упоминании), а не учетной записи пользователя с минимальными привилегиями или LUA.
- Обратитесь к неадминистраторам в качестве стандартных пользователей.
- Обратитесь к встроенным администраторам компьютеров в качестве встроенных администраторов.
В документации пользователя:
- Ознакомьтесь с актом предоставления согласия на выполнение административной задачи как предоставление разрешения.
В программировании и другой технической документации:
- Обратитесь к акту предоставления согласия на выполнение административной задачи как повышение прав.
- В контексте UAC администраторы называются защищенными администраторами, если они не повышены, а администраторы с повышенными привилегиями после повышения прав.
- В диалоговом окне, используемом для ввода паролей в качестве пользовательского интерфейса учетных данных. См. диалоговое окно, используемое для предоставления согласия в качестве пользовательского интерфейса согласия. Как правило, это пользовательский интерфейс повышения прав.