The SiteMapNode objects delegate to the site map provider to keep track of their child and parent site map nodes. As a result, classes that implement a site map provider for a hierarchical site map structure, such as the StaticSiteMapProvider class, and use SiteMapNode objects to represent site map nodes, must track the hierarchical relationships of all site map nodes in order to be able to navigate an entire hierarchical tree.
If a ParentNode property is not found, the StaticSiteMapProvider class detects whether the current site map provider has a ParentProvider property. If so, the site map provider calls the GetParentNode property for the parent site map provider. This enables the scenario where the parent site map node of a site map node is maintained by a different site map provider.
The GetParentNode method calls the BuildSiteMap method internally to retrieve the SiteMapNode that represents the parent of the specified site map node. If security trimming is enabled, the site map node is returned only if the user is permitted to see it.