Редактор контроль доступа
Редактор управления доступом — это набор страниц свойств и страниц свойств, которые позволяют пользователю просматривать и изменять компоненты дескриптора безопасности объекта. Редактор состоит из двух main частей:
- Базовая страница свойств безопасности, которая предоставляет простой интерфейс для редактирования записей управления доступом (ACE) в списке управления доступом на усмотрение объекта (DACL). Эта страница может включать необязательную кнопку Дополнительно , которая отображает страницу свойств расширенной безопасности.
- Расширенный список свойств безопасности со страницами свойств, которые позволяют пользователю изменять системный список управления доступом (SACL) объекта, изменять владельца объекта или выполнять расширенное редактирование daCL объекта.
Функция CreateSecurityPage создает страницу базовых свойств безопасности. Затем можно использовать функцию PropertySheet или сообщение PSM_ADDPAGE , чтобы добавить эту страницу на лист свойств.
Кроме того, можно использовать функцию EditSecurity для отображения страницы свойств, содержащей базовую страницу свойств безопасности.
Для CreateSecurityPage и EditSecurity вызывающий объект должен передать указатель на реализацию интерфейса ISecurityInformation . Редактор управления доступом вызывает методы этого интерфейса для получения сведений об управлении доступом к редактируемом объекте и передачи входных данных пользователя обратно в приложение. Методы ISecurityInformation имеют следующие цели:
Для инициализации страниц свойств.
Реализация метода GetObjectInformation передает в редактор структуру SI_OBJECT_INFO . Эта структура определяет страницы свойств, которые должны отображаться в редакторе, и другие сведения, определяющие параметры редактирования, доступные пользователю.
Предоставление сведений о безопасности редактируемого объекта.
Реализация GetSecurity передает исходный дескриптор безопасности объекта в редактор. Методы GetAccessRights и MapGeneric предоставляют сведения о правах доступа объекта. Метод GetInheritTypes предоставляет сведения о том, как ACE объекта могут наследоваться дочерними объектами.
Чтобы передать входные данные пользователя обратно в приложение.
Когда пользователь нажимает кнопку "Ок" или "Применить", редактор вызывает метод SetSecurity , чтобы передать дескриптор безопасности, содержащий изменения пользователя.