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