Przestrzenie nazw obiektów
Przestrzeń nazw obiektów chroni nazwane obiekty przed nieautoryzowanym dostępem. Utworzenie prywatnej przestrzeni nazw umożliwia aplikacjom i usługom tworzenie bezpieczniejszego środowiska.
Proces może utworzyć prywatną przestrzeń nazw przy użyciu funkcji CreatePrivateNamespace. Ta funkcja wymaga określenia granic definiujących sposób izolowania obiektów w przestrzeni nazw. Obiekt wywołujący musi znajdować się w określonej granicy, aby operacja tworzenia powiodła się. Aby określić granicę, użyj funkcji CreateBoundaryDescriptor i AddSIDToBoundaryDescriptor.
Parametr lpAliasPrefixCreatePrivateNamespace służy jako nazwa przestrzeni nazw. Każda przestrzeń nazw jest unikatowo identyfikowana przez jej nazwy i granice. System obsługuje wiele prywatnych przestrzeni nazw o tej samej nazwie, o ile określają różne granice.
Załóżmy, że proces żąda utworzenia przestrzeni nazw NS1, która definiuje granicę zawierającą dwa elementy: identyfikator SID administratora i bieżący numer sesji. Przestrzeń nazw jest tworzona, jeśli proces jest uruchomiony w ramach konta administratora w określonej sesji. Inny proces może uzyskać dostęp do tej przestrzeni nazw przy użyciu funkcji OpenPrivateNamespace. Zarówno określona nazwa, jak i granica muszą być zgodne, jeśli ten proces ma otworzyć przestrzeń nazw utworzoną przez pierwszy proces. Należy pamiętać, że proces może otworzyć istniejącą przestrzeń nazw, nawet jeśli nie znajduje się w granicach, chyba że twórca ograniczył dostęp do przestrzeni nazw przy użyciu parametru lpPrivateNamespaceAttributes.
Obiekty utworzone w tej przestrzeni nazw mają nazwy, które mają prefiks \nazwa obiektu. Prefiks to nazwa przestrzeni nazw określona przez parametr lpAliasPrefixCreatePrivateNamespace. Aby na przykład utworzyć obiekt zdarzenia o nazwie MyEvent w przestrzeni nazw NS1, wywołaj funkcję CreateEvent z parametrem lpName ustawionym na NS1\MyEvent.
Proces, który utworzył przestrzeń nazw, może użyć funkcji ClosePrivateNamespace, aby zamknąć dojście do przestrzeni nazw. Uchwyt jest również zamykany po zakończeniu procesu, który utworzył przestrzeń nazw. Po zamknięciu dojścia przestrzeni nazw kolejne wywołania OpenPrivateNamespace kończą się niepowodzeniem, ale wszystkie operacje na obiektach w przestrzeni nazw kończą się powodzeniem.
Tematy pokrewne