Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Первым шагом в определении типа учетной записи, в которой должно быть запущено приложение, является проверка того, какие ресурсы будет использовать приложение и какие привилегированные API он вызовет. Вы можете обнаружить, что приложение или большие части приложения не требуют прав администратора. написание защищенного кода, Майкл Говард и Дэвид LeBlanc предлагает отличное описание того, как выполнять эту оценку и настоятельно рекомендуется. (Этот ресурс может быть недоступен на некоторых языках и странах.)
Вы можете предоставить привилегии, необходимые приложению, с меньшим воздействием на вредоносные атаки, используя один из следующих подходов:
- Запустите под учетной записью с меньшими привилегиями. Одним из способов этого является использование PrivilegeCheck, чтобы определить, какие привилегии включены в маркере. Если доступные привилегии недостаточно для текущей операции, вы можете отключить этот код и попросить пользователя входить в учетную запись с правами администратора.
- Прервать отдельные функции приложения, требующие разрешений администратора. Для пользователя можно указать ярлык, который выполняет команду RunAs. Подробные инструкции по настройке ярлыка можно найти в справке по запросу Runas. Программно можно настроить команду RunAs в разделе раздела реестра AppId Key для приложения.
- Проверка подлинности пользователя путем вызова CredUIPromptForCredentials (GUI) или CredUICmdLinePromptForCredentials (командная строка) для получения имени пользователя и пароля. Пример см. в разделе запрос пользователя для учетных данных.
- Олицетворения пользователя. Процесс, начинающийся с учетной записи с высоким уровнем привилегий, например system, может олицетворить учетную запись пользователя, вызвав олицетворенияLoggedOnUser или аналогичные функции олицетворения, что снижает уровень привилегий. Однако если вызов RevertToSelf внедряется в поток, процесс возвращается в исходные привилегии системы.
Если вы определили, что приложение должно работать под учетной записью с правами администратора и что пароль администратора должен храниться в программной системе, см. обработке паролей для методов безопасного выполнения этого действия.