Пространства имен объектов
Пространство имен объектов защищает именованные объекты от несанкционированного доступа. Создание частного пространства имен позволяет приложениям и службам создавать более безопасную среду.
Процесс может создать частное пространство имен с помощью функции createPrivateNamespace. Эта функция требует, чтобы указать границу , которая определяет, как объекты в пространстве имен должны быть изолированы. Вызывающий объект должен находиться в пределах указанной границы для успешной операции создания. Чтобы указать границу, используйте функции CreateBoundaryDescriptor и AddSIDToBoundaryDescriptor.
Параметр lpAliasPrefixCreatePrivateNamespace служит именем пространства имен. Каждое пространство имен уникально идентифицируется по его имени и границам. Система поддерживает несколько частных пространств имен с одинаковым именем, если они указывают разные границы.
Предположим, что процесс запрашивает создание пространства имен NS1, определяющего границу, содержащую два элемента: идентификатор безопасности администратора и номер текущего сеанса. Пространство имен создается, если процесс выполняется под учетной записью администратора в указанном сеансе. Другой процесс может получить доступ к этому пространству имен с помощью функции OpenPrivateNamespace. Указанное имя и граница должны совпадать, если этот процесс должен открыть пространство имен, созданное первым процессом. Обратите внимание, что процесс может открывать существующее пространство имен, даже если он не находится в пределах границы, если создатель не ограничен доступом к пространству имен с помощью параметра lpPrivateNamespaceAttributes.
Объекты, созданные в этом пространстве имен, имеют имена, которые относятся к префиксу формы \имени объекта. Префикс — это имя пространства имен, указанное параметром lpAliasPrefixCreatePrivateNamespace. Например, чтобы создать объект события с именем MyEvent в пространстве имен NS1, вызовите функцию CreateEvent с параметром lpName значение NS1\MyEvent.
Процесс, созданный пространством имен, может использовать функцию ClosePrivateNamespace, чтобы закрыть дескриптор к пространству имен. Дескриптор также закрывается при завершении процесса, создавшего пространство имен. После закрытия дескриптора пространства имен последующие вызовы OpenPrivateNamespace сбоем, но все операции с объектами в пространстве имен завершаются успешно.
Связанные разделы