PortalSiteMapProvider class

Provides PortalSiteMapNode objects that represent a merging of the Microsoft SharePoint Foundation 2010SPNavigation store and dynamic site structure, including sites and pages.

Inheritance hierarchy

System.Object
  System.Configuration.Provider.ProviderBase
    System.Web.SiteMapProvider
      Microsoft.SharePoint.Publishing.Navigation.PortalSiteMapProvider

Namespace:  Microsoft.SharePoint.Publishing.Navigation
Assembly:  Microsoft.SharePoint.Publishing (in Microsoft.SharePoint.Publishing.dll)

Syntax

'Declaration
<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 _
    Inherits SiteMapProvider _
    Implements IEditableSiteMapProvider
'Usage
Dim instance As PortalSiteMapProvider
[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

Remarks

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.

Thread safety

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

See also

Reference

PortalSiteMapProvider members

Microsoft.SharePoint.Publishing.Navigation namespace

PortalSiteMapProvider

CreateAdditionalSiteMapNodes

GetCachedListItemsByQuery

[M:Microsoft.SharePoint.Publishing.Navigation.PortalSiteMapProvider.GetCachedSiteDataQuery(Microsoft.SharePoint.Publishing.Navigation.PortalWebSiteMapNode,Microsoft.SharePoint.SPSiteDataQuery,Microsoft.SharePoint.SPWeb]