Provides PortalSiteMapNode objects that represent a merging of the Microsoft SharePoint Foundation 2010SPNavigation store and dynamic site structure, including sites and pages.
Assembly: Microsoft.SharePoint.Publishing (in Microsoft.SharePoint.Publishing.dll)
[AspNetHostingPermissionAttribute(SecurityAction.LinkDemand, Level = AspNetHostingPermissionLevel.Minimal)] [SharePointPermissionAttribute(SecurityAction.LinkDemand, ObjectModel = true)] [AspNetHostingPermissionAttribute(SecurityAction.InheritanceDemand, Level = AspNetHostingPermissionLevel.Minimal)] [SharePointPermissionAttribute(SecurityAction.InheritanceDemand, ObjectModel = true)] public class PortalSiteMapProvider : SiteMapProvider, IEditableSiteMapProvider
This is the site map provider class for Microsoft SharePoint Server 2010.
Many named instances of this site map provider are listed in the web.config file, and are also available through static properties on this class that the master pages in SharePoint Server 2010 deliver. SharePoint Server 2010 uses these named instances to provide data to the horizontal and vertical navigation menus. The application shares named instances across all Web requests on the current application domain. The class stores no session information. If necessary, session information is stored on the HttpContext class.
When generating navigation elements, the NavigationPortalSiteMapProvider class uses the CachedObject interfaces instead of the actual SPWeb objects. The PortalSiteMapProvider object uses SharePoint Foundation cacheable access control lists (ACLs) to check permissions as necessary, and checks permissions only once per family of PortalSiteMapProvider objects.
Any SPWeb object that has the HasUniquePerm property set to false is part of a family. If an object's parent has had its ACL permissions checked and the object shares the same rights as the parent, the current object does not need to be checked because the parent has been checked.