<?xml version="1.0" encoding="utf-8"?>
<Type Name="SiteMapProvider" FullName="System.Web.SiteMapProvider">
  <TypeSignature Language="C#" Value="public abstract class SiteMapProvider : System.Configuration.Provider.ProviderBase" />
  <AssemblyInfo>
    <AssemblyName>System.Web</AssemblyName>
    <AssemblyVersion>2.0.0.0</AssemblyVersion>
  </AssemblyInfo>
  <Base>
    <BaseTypeName>System.Configuration.Provider.ProviderBase</BaseTypeName>
  </Base>
  <Interfaces />
  <Docs>
    <since version=".NET 2.0" />
    <remarks>
      <attribution license="cc4" from="Microsoft" modified="false" />
      <para>The <see cref="T:System.Web.StaticSiteMapProvider" /> and <see cref="T:System.Web.XmlSiteMapProvider" /> classes represent the default implementations of the abstract <see cref="T:System.Web.SiteMapProvider" /> class. The <see cref="T:System.Web.XmlSiteMapProvider" /> uses an XML file named Web.sitemap to store site map data. For more information on about the Web.sitemap file, see <format type="text/html"><a href="6b85a558-1df8-44cf-bea6-62e61bcc8d20">ASP.NET Site Maps</a></format>. </para>
      <para>The <see cref="T:System.Web.SiteMapProvider" /> class supports the concept of a site map provider hierarchy, by declaring the <see cref="P:System.Web.SiteMapProvider.RootProvider" /> and <see cref="P:System.Web.SiteMapProvider.ParentProvider" /> properties. A <see cref="T:System.Web.SiteMapProvider" /> can be a child or parent of another provider. This enables scenarios where different content areas of a site are owned or implemented by different development groups that maintain their own site maps and site map providers.</para>
      <para>All <see cref="T:System.Web.SiteMapProvider" /> objects are configured in the Web.config files. Any site map providers that are declared in these configuration files are loaded at run time and are used to load and process site navigation data. The <see cref="T:System.Web.SiteMap" /> object, which keeps track of all the providers that are available to it through its <see cref="P:System.Web.SiteMap.Providers" /> property collection, provides programmatic access to the navigation data that is managed by the providers. The following code example demonstrates the format that is used to declare a site map provider in a Web.config file.</para>
      <code>&lt;siteMap defaultProvider="&lt;name&gt;"&gt;
  &lt;providers&gt;
    &lt;add
      name="&lt;friendly name&gt;"
      type="&lt;fully qualified class name&gt;, &lt;assembly name (optional)&gt;" 
      siteMapFile = "&lt;file name&gt;" /&gt;
  &lt;/providers&gt;
&lt;/siteMap&gt;</code>
      <para>The site navigation data that is loaded by these providers is used by other components of the site map infrastructure, such as the <see cref="T:System.Web.UI.WebControls.SiteMapPath" /> and <see cref="T:System.Web.UI.WebControls.TreeView" /> controls, to display site map information for users.</para>
      <para>If you implement your own site map provider, you can place the source file in the App_Code directory of your ASP.NET application, and then the assembly will be compiled automatically. You can also place your own site map provider in the Global Assembly Cache (GAC), and provide a fully-qualified reference to it in the Web.config file. For more information on compiler services, see <format type="text/html"><a href="8a18e5c2-d41d-49ef-abcb-7c27e2469433">Working with Assemblies and the Global Assembly Cache</a></format>. </para>
    </remarks>
    <summary>
      <attribution license="cc4" from="Microsoft" modified="false" />
      <para>Provides a common base class for all site map data providers, and a way for developers to implement custom site map data providers that can be used with the ASP.NET site map infrastructure as persistent stores for <see cref="T:System.Web.SiteMap" /> objects. </para>
    </summary>
  </Docs>
  <Members>
    <Member MemberName=".ctor">
      <MemberSignature Language="C#" Value="protected SiteMapProvider ();" />
      <MemberType>Constructor</MemberType>
      <Parameters />
      <Docs>
        <since version=".NET 2.0" />
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <block subset="none" type="note">
            <para>The <see cref="T:System.Web.SiteMapProvider" /> class is not instantiated directly. The <see cref="M:System.Web.SiteMapProvider.#ctor" /> constructor is called from the constructor of classes that are derived from the <see cref="T:System.Web.StaticSiteMapProvider" /> class.</para>
          </block>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Initializes a new instance of the <see cref="T:System.Web.SiteMapProvider" /> class.</para>
        </summary>
      </Docs>
      <AssemblyInfo>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
      </AssemblyInfo>
    </Member>
    <Member MemberName="AddNode">
      <MemberSignature Language="C#" Value="protected virtual void AddNode (System.Web.SiteMapNode node);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="node" Type="System.Web.SiteMapNode" />
      </Parameters>
      <Docs>
        <since version=".NET 2.0" />
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Classes deriving from the <see cref="T:System.Web.SiteMapProvider" /> class can override the <see cref="M:System.Web.SiteMapProvider.AddNode(System.Web.SiteMapNode)" /> method and provide logic for adding a <see cref="T:System.Web.SiteMapNode" /> object to the node collection that is maintained by the site map provider. The default implementation of the <see cref="Overload:System.Web.SiteMapProvider.AddNode" /> method throws a <see cref="T:System.NotImplementedException" /> exception.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Adds a <see cref="T:System.Web.SiteMapNode" /> object to the node collection that is maintained by the site map provider.</para>
        </summary>
        <param name="node">
          <attribution license="cc4" from="Microsoft" modified="false" />The <see cref="T:System.Web.SiteMapNode" /> to add to the node collection maintained by the provider. </param>
      </Docs>
      <AssemblyInfo>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
      </AssemblyInfo>
    </Member>
    <Member MemberName="AddNode">
      <MemberSignature Language="C#" Value="protected virtual void AddNode (System.Web.SiteMapNode node, System.Web.SiteMapNode parentNode);" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="node" Type="System.Web.SiteMapNode" />
        <Parameter Name="parentNode" Type="System.Web.SiteMapNode" />
      </Parameters>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Classes deriving from the <see cref="T:System.Web.SiteMapProvider" /> class can override the <see cref="M:System.Web.SiteMapProvider.AddNode(System.Web.SiteMapNode,System.Web.SiteMapNode)" /> method and provide logic for adding a <see cref="T:System.Web.SiteMapNode" /> object with a specified parent to the node collection that is maintained by the site map provider. For example, the <see cref="M:System.Web.XmlSiteMapProvider.AddNode(System.Web.SiteMapNode,System.Web.SiteMapNode)" /> method adds the <see cref="T:System.Web.SiteMapNode" /> object that is specified by <paramref name="node" /> to the <see cref="T:System.Web.SiteMapNodeCollection" /> collection that is maintained by the <see cref="T:System.Web.XmlSiteMapProvider" /> object and creates a parent/child relationship between the <see cref="T:System.Web.SiteMapNode" /> object that is specified by <paramref name="node" /> and <paramref name="parentNode" />. The default implementation of the <see cref="Overload:System.Web.SiteMapProvider.AddNode" /> method throws a <see cref="T:System.NotImplementedException" /> exception.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Adds a <see cref="T:System.Web.SiteMapNode" /> object to the node collection that is maintained by the site map provider and specifies the parent <see cref="T:System.Web.SiteMapNode" /> object. </para>
        </summary>
        <param name="node">
          <attribution license="cc4" from="Microsoft" modified="false" />The <see cref="T:System.Web.SiteMapNode" /> to add to the node collection maintained by the provider.</param>
        <param name="parentNode">
          <attribution license="cc4" from="Microsoft" modified="false" />The <see cref="T:System.Web.SiteMapNode" /> that is the parent of <paramref name="node" />.</param>
      </Docs>
    </Member>
    <Member MemberName="CurrentNode">
      <MemberSignature Language="C#" Value="public virtual System.Web.SiteMapNode CurrentNode { get; }" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>System.Web.SiteMapNode</ReturnType>
      </ReturnValue>
      <Docs>
        <value>To be added.</value>
        <since version=".NET 2.0" />
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The <see cref="E:System.Web.SiteMapProvider.SiteMapResolve" /> event is raised before attempting to retrieve a <see cref="T:System.Web.SiteMapNode" /> object, to enable event subscribers to return an instance of the <see cref="T:System.Web.SiteMapNode" /> class. If there are no event subscribers, the <see cref="T:System.Web.SiteMapProvider" /> class calls the <see cref="M:System.Web.SiteMapProvider.FindSiteMapNode(System.Web.HttpContext)" /> method using the current HTTP context to retrieve a <see cref="T:System.Web.SiteMapNode" /> that represents the currently requested page.</para>
          <para>If the currently requested page does not correspond with a <see cref="T:System.Web.SiteMapNode" />, null is returned. If security trimming is enabled and the user is not permitted to access the <see cref="T:System.Web.SiteMapNode" />, null is returned. </para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Gets the <see cref="T:System.Web.SiteMapNode" /> object that represents the currently requested page.</para>
        </summary>
      </Docs>
      <AssemblyInfo>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
      </AssemblyInfo>
    </Member>
    <Member MemberName="EnableLocalization">
      <MemberSignature Language="C#" Value="public bool EnableLocalization { set; get; }" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>System.Boolean</ReturnType>
      </ReturnValue>
      <Docs>
        <value>To be added.</value>
        <since version=".NET 2.0" />
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The <see cref="P:System.Web.SiteMapProvider.EnableLocalization" /> property is used for the get accessor of the <see cref="P:System.Web.SiteMapNode.Title" /> and <see cref="P:System.Web.SiteMapNode.Description" /> properties, as well as additional <see cref="P:System.Web.SiteMapNode.Attributes" /> properties of a <see cref="T:System.Web.SiteMapNode" /> object.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Gets or sets a Boolean value indicating whether localized values of <see cref="T:System.Web.SiteMapNode" /> attributes are returned.</para>
        </summary>
      </Docs>
      <AssemblyInfo>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
      </AssemblyInfo>
    </Member>
    <Member MemberName="FindSiteMapNode">
      <MemberSignature Language="C#" Value="public abstract System.Web.SiteMapNode FindSiteMapNode (string rawUrl);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Web.SiteMapNode</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="rawUrl" Type="System.String" />
      </Parameters>
      <Docs>
        <since version=".NET 2.0" />
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Classes that derive from the <see cref="T:System.Web.SiteMapProvider" /> class must implement the abstract <see cref="M:System.Web.SiteMapProvider.FindSiteMapNode(System.String)" /> method. </para>
          <para>The URL provided can be a virtual or absolute URL. It might also be a URL that uses application-relative syntax, such as ~/apprelativedirectory. Ensure that any implementation of the <see cref="M:System.Web.SiteMapProvider.FindSiteMapNode(System.String)" /> method parse and handle application-relative syntax properly.</para>
          <para>The <see cref="T:System.Web.XmlSiteMapProvider" /> class, which is the default site map provider for ASP.NET, uses the URL of a <see cref="T:System.Web.SiteMapNode" /> object as a key in the various collections that the classes maintain. Therefore, if a <see cref="T:System.Web.SiteMapNode" /> provides a URL, it must be unique within the scope of the site map provider. If no URL is provided, a unique identifier is generated to identify the <see cref="T:System.Web.SiteMapNode" />.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>When overridden in a derived class, retrieves a <see cref="T:System.Web.SiteMapNode" /> object that represents the page at the specified URL.</para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>A <see cref="T:System.Web.SiteMapNode" /> that represents the page identified by <paramref name="rawURL" />; otherwise, null, if no corresponding <see cref="T:System.Web.SiteMapNode" /> is found or if security trimming is enabled and the <see cref="T:System.Web.SiteMapNode" /> cannot be returned for the current user.</para>
        </returns>
        <param name="rawUrl">
          <attribution license="cc4" from="Microsoft" modified="false" />A URL that identifies the page for which to retrieve a <see cref="T:System.Web.SiteMapNode" />. </param>
      </Docs>
      <AssemblyInfo>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
      </AssemblyInfo>
    </Member>
    <Member MemberName="FindSiteMapNode">
      <MemberSignature Language="C#" Value="public virtual System.Web.SiteMapNode FindSiteMapNode (System.Web.HttpContext context);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Web.SiteMapNode</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="context" Type="System.Web.HttpContext" />
      </Parameters>
      <Docs>
        <since version=".NET 2.0" />
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The <see cref="M:System.Web.SiteMapProvider.FindSiteMapNode(System.Web.HttpContext)" /> method calls the abstract <see cref="M:System.Web.SiteMapProvider.FindSiteMapNode(System.String)" /> method to retrieve a <see cref="T:System.Web.SiteMapNode" /> object for the currently requested page based on the raw URL or the virtual path of the request. If no corresponding <see cref="T:System.Web.SiteMapNode" /> is found in the <see cref="T:System.Web.SiteMap" />, null is returned.</para>
          <para>The <see cref="Overload:System.Web.SiteMapProvider.FindSiteMapNode" /> method does not check whether a <see cref="T:System.Web.SiteMapNode" /> is accessible to a user, by default.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Retrieves a <see cref="T:System.Web.SiteMapNode" /> object that represents the currently requested page using the specified <see cref="T:System.Web.HttpContext" /> object.</para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>A <see cref="T:System.Web.SiteMapNode" /> that represents the currently requested page; otherwise, null, if no corresponding <see cref="T:System.Web.SiteMapNode" /> can be found in the <see cref="T:System.Web.SiteMapNode" /> or if the page context is null. </para>
        </returns>
        <param name="context">
          <attribution license="cc4" from="Microsoft" modified="false" />The <see cref="T:System.Web.HttpContext" /> used to match node information with the URL of the requested page.</param>
      </Docs>
      <AssemblyInfo>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
      </AssemblyInfo>
    </Member>
    <Member MemberName="FindSiteMapNodeFromKey">
      <MemberSignature Language="C#" Value="public virtual System.Web.SiteMapNode FindSiteMapNodeFromKey (string key);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Web.SiteMapNode</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="key" Type="System.String" />
      </Parameters>
      <Docs>
        <since version=".NET 2.0" />
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The <see cref="T:System.Web.SiteMapProvider" /> implementation returns null in all cases. Classes that derive from the <see cref="T:System.Web.SiteMapProvider" /> class can override the <see cref="M:System.Web.SiteMapProvider.FindSiteMapNodeFromKey(System.String)" /> method to provide lookup functionality based on a unique key (instead of a URL, which is used by the <see cref="Overload:System.Web.SiteMapProvider.FindSiteMapNode" /> method). Implement the <see cref="M:System.Web.SiteMapProvider.FindSiteMapNodeFromKey(System.String)" /> method if your site map provider implementation uses the <see cref="P:System.Web.SiteMapNode.Key" /> property of a <see cref="T:System.Web.SiteMapNode" /> object as a primary identifier in a site map structure.</para>
          <para>The <see cref="T:System.Web.StaticSiteMapProvider" /> class provides an implementation that handles searching for site map nodes that do not define a URL.</para>
          <para>The <see cref="T:System.Web.XmlSiteMapProvider" /> class, which is the default site map provider for ASP.NET, uses the URL of a <see cref="T:System.Web.SiteMapNode" /> as a key in the various collections that the classes maintain. Therefore, if a node provides a URL, it must be unique within the scope of the site map provider. If no URL is provided, a unique identifier is generated to identify the <see cref="T:System.Web.SiteMapNode" />.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Retrieves a <see cref="T:System.Web.SiteMapNode" /> object based on a specified key.</para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>A <see cref="T:System.Web.SiteMapNode" /> that represents the page identified by <paramref name="key" />; otherwise, null, if no corresponding <see cref="T:System.Web.SiteMapNode" /> is found or if security trimming is enabled and the <see cref="T:System.Web.SiteMapNode" /> cannot be returned for the current user. The default is null.</para>
        </returns>
        <param name="key">
          <attribution license="cc4" from="Microsoft" modified="false" />A lookup key with which a <see cref="T:System.Web.SiteMapNode" /> is created.</param>
      </Docs>
      <AssemblyInfo>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
      </AssemblyInfo>
    </Member>
    <Member MemberName="GetChildNodes">
      <MemberSignature Language="C#" Value="public abstract System.Web.SiteMapNodeCollection GetChildNodes (System.Web.SiteMapNode node);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Web.SiteMapNodeCollection</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="node" Type="System.Web.SiteMapNode" />
      </Parameters>
      <Docs>
        <since version=".NET 2.0" />
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Classes that derive from the <see cref="T:System.Web.SiteMapProvider" /> class must implement the abstract <see cref="M:System.Web.SiteMapProvider.GetChildNodes(System.Web.SiteMapNode)" /> method.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>When overridden in a derived class, retrieves the child nodes of a specific <see cref="T:System.Web.SiteMapNode" />.</para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>A read-only <see cref="T:System.Web.SiteMapNodeCollection" /> that contains the immediate child nodes of the specified <see cref="T:System.Web.SiteMapNode" />; otherwise, null or an empty collection, if no child nodes exist.</para>
        </returns>
        <param name="node">
          <attribution license="cc4" from="Microsoft" modified="false" />The <see cref="T:System.Web.SiteMapNode" /> for which to retrieve all child nodes. </param>
      </Docs>
      <AssemblyInfo>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
      </AssemblyInfo>
    </Member>
    <Member MemberName="GetCurrentNodeAndHintAncestorNodes">
      <MemberSignature Language="C#" Value="public virtual System.Web.SiteMapNode GetCurrentNodeAndHintAncestorNodes (int upLevel);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Web.SiteMapNode</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="upLevel" Type="System.Int32" />
      </Parameters>
      <Docs>
        <since version=".NET 2.0" />
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The default implementation of the <see cref="M:System.Web.SiteMapProvider.GetCurrentNodeAndHintAncestorNodes(System.Int32)" /> method returns the <see cref="P:System.Web.SiteMapProvider.CurrentNode" /> property; however, site map providers can override the <see cref="M:System.Web.SiteMapProvider.GetCurrentNodeAndHintAncestorNodes(System.Int32)" /> method and provide an optimized implementation that uses custom caching mechanisms to return the current <see cref="T:System.Web.SiteMapNode" />, as well as the parent and ancestor nodes of the parent.  </para>
          <para>The <paramref name="upLevel" /> parameter is used to specify how many levels of parent and ancestor nodes to retrieve. If preferred, the parent and ancestor nodes can be linked to the <see cref="T:System.Web.SiteMapNode" /> object that is returned by the <see cref="M:System.Web.SiteMapProvider.GetCurrentNodeAndHintAncestorNodes(System.Int32)" /> method, using the <see cref="P:System.Web.SiteMapNode.ParentNode" /> property.</para>
          <para>The <see cref="T:System.Web.XmlSiteMapProvider" /> class, which is the default site map provider for ASP.NET, caches the entire site map in memory, which results in little or no overhead when querying the <see cref="T:System.Web.XmlSiteMapProvider" /> for specific <see cref="T:System.Web.SiteMapNode" /> objects. </para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Provides an optimized lookup method for site map providers when retrieving the node for the currently requested page and fetching the parent and ancestor site map nodes for the current page.</para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>A <see cref="T:System.Web.SiteMapNode" /> that represents the currently requested page; otherwise, null, if the <see cref="T:System.Web.SiteMapNode" /> is not found or cannot be returned for the current user.</para>
        </returns>
        <param name="upLevel">
          <attribution license="cc4" from="Microsoft" modified="false" />The number of ancestor site map node generations to get. A value of -1 indicates that all ancestors might be retrieved and cached by the provider.</param>
      </Docs>
      <AssemblyInfo>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
      </AssemblyInfo>
    </Member>
    <Member MemberName="GetCurrentNodeAndHintNeighborhoodNodes">
      <MemberSignature Language="C#" Value="public virtual System.Web.SiteMapNode GetCurrentNodeAndHintNeighborhoodNodes (int upLevel, int downLevel);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Web.SiteMapNode</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="upLevel" Type="System.Int32" />
        <Parameter Name="downLevel" Type="System.Int32" />
      </Parameters>
      <Docs>
        <since version=".NET 2.0" />
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The default implementation of the <see cref="M:System.Web.SiteMapProvider.GetCurrentNodeAndHintNeighborhoodNodes(System.Int32,System.Int32)" /> method returns the <see cref="P:System.Web.SiteMapProvider.CurrentNode" /> property; however, site map providers can override the <see cref="M:System.Web.SiteMapProvider.GetCurrentNodeAndHintNeighborhoodNodes(System.Int32,System.Int32)" /> method and provide an optimized implementation that uses custom caching mechanisms to return the current <see cref="T:System.Web.SiteMapNode" /> object, as well as <see cref="T:System.Web.SiteMapNode" /> objects that are in the proximity of the current <see cref="T:System.Web.SiteMapNode" />.</para>
          <para>The <paramref name="upLevel" /> parameter is used to specify how many levels of parent and ancestor nodes to retrieve and cache, along with their immediate children. The <paramref name="downLevel" /> parameter is used to specify how many levels of descendant nodes from the current <see cref="T:System.Web.SiteMapNode" /> to retrieve. If preferred, the ancestor and descendant nodes can be linked to the <see cref="T:System.Web.SiteMapNode" /> that is returned by the </para>
          <para>
            <see cref="M:System.Web.SiteMapProvider.GetCurrentNodeAndHintNeighborhoodNodes(System.Int32,System.Int32)" /> method, using the <see cref="P:System.Web.SiteMapNode.ParentNode" /> and <see cref="P:System.Web.SiteMapNode.ChildNodes" /> properties. If there are fewer ancestor or child node levels than are specified by <paramref name="upLevel" /> or <paramref name="downLevel" />, only those that are available are retrieved.</para>
          <para>The <see cref="T:System.Web.XmlSiteMapProvider" /> class, which is the default site map provider for ASP.NET, caches the entire site map in memory, which results in little or no overhead when querying the <see cref="T:System.Web.XmlSiteMapProvider" /> for specific <see cref="T:System.Web.SiteMapNode" /> objects.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Provides an optimized lookup method for site map providers when retrieving the node for the currently requested page and fetching the site map nodes in the proximity of the current node.</para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>A <see cref="T:System.Web.SiteMapNode" /> that represents the currently requested page; otherwise, null, if the <see cref="T:System.Web.SiteMapNode" /> is not found or cannot be returned for the current user.</para>
        </returns>
        <param name="upLevel">
          <attribution license="cc4" from="Microsoft" modified="false" />The number of ancestor <see cref="T:System.Web.SiteMapNode" /> generations to fetch. 0 indicates no ancestor nodes are retrieved and -1 indicates that all ancestors might be retrieved and cached by the provider.</param>
        <param name="downLevel">
          <attribution license="cc4" from="Microsoft" modified="false" />The number of child <see cref="T:System.Web.SiteMapNode" /> generations to fetch. 0 indicates no descendant nodes are retrieved and a -1 indicates that all descendant nodes might be retrieved and cached by the provider.</param>
      </Docs>
      <AssemblyInfo>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
      </AssemblyInfo>
    </Member>
    <Member MemberName="GetParentNode">
      <MemberSignature Language="C#" Value="public abstract System.Web.SiteMapNode GetParentNode (System.Web.SiteMapNode node);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Web.SiteMapNode</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="node" Type="System.Web.SiteMapNode" />
      </Parameters>
      <Docs>
        <remarks>To be added.</remarks>
        <since version=".NET 2.0" />
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>When overridden in a derived class, retrieves the parent node of a specific <see cref="T:System.Web.SiteMapNode" /> object.</para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>A <see cref="T:System.Web.SiteMapNode" /> that represents the parent of <paramref name="node" />; otherwise, null, if the <see cref="T:System.Web.SiteMapNode" /> has no parent or security trimming is enabled and the parent node is not accessible to the current user.</para>
          <block subset="none" type="note">
            <para>
              <see cref="M:System.Web.SiteMapProvider.GetParentNode(System.Web.SiteMapNode)" /> might also return null if the parent node belongs to a different provider. In this case, use the <see cref="P:System.Web.SiteMapNode.ParentNode" /> property of <paramref name="node" /> instead.</para>
          </block>
        </returns>
        <param name="node">
          <attribution license="cc4" from="Microsoft" modified="false" />The <see cref="T:System.Web.SiteMapNode" /> for which to retrieve the parent node. </param>
      </Docs>
      <AssemblyInfo>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
      </AssemblyInfo>
    </Member>
    <Member MemberName="GetParentNodeRelativeToCurrentNodeAndHintDownFromParent">
      <MemberSignature Language="C#" Value="public virtual System.Web.SiteMapNode GetParentNodeRelativeToCurrentNodeAndHintDownFromParent (int walkupLevels, int relativeDepthFromWalkup);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Web.SiteMapNode</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="walkupLevels" Type="System.Int32" />
        <Parameter Name="relativeDepthFromWalkup" Type="System.Int32" />
      </Parameters>
      <Docs>
        <since version=".NET 2.0" />
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The default implementation of the <see cref="T:System.Web.SiteMapProvider" /> class provides a non-optimized implementation of the <see cref="M:System.Web.SiteMapProvider.GetParentNodeRelativeToCurrentNodeAndHintDownFromParent(System.Int32,System.Int32)" /> method, calling the <see cref="M:System.Web.SiteMapProvider.GetCurrentNodeAndHintAncestorNodes(System.Int32)" /> and <see cref="M:System.Web.SiteMapProvider.HintNeighborhoodNodes(System.Web.SiteMapNode,System.Int32,System.Int32)" /> methods; however, site map providers can override the <see cref="M:System.Web.SiteMapProvider.GetParentNodeRelativeToCurrentNodeAndHintDownFromParent(System.Int32,System.Int32)" /> method and provide an optimized implementation that uses custom caching mechanisms to return the ancestor node and perform an optimized lookup of the other <see cref="T:System.Web.SiteMapNode" /> objects.  </para>
          <para>The <paramref name="walkupLevels" /> parameter is used to specify how many levels of parent and ancestor nodes to traverse when retrieving the target node. If fewer levels exist than are requested, null is returned. The <paramref name="downLevel" /> parameter is used to specify how many levels of descendant nodes from the target ancestor node to retrieve. If preferred, the ancestor and descendant nodes can be linked to the <see cref="T:System.Web.SiteMapNode" /> that is returned by the <see cref="M:System.Web.SiteMapProvider.GetParentNodeRelativeToCurrentNodeAndHintDownFromParent(System.Int32,System.Int32)" /> method, using the <see cref="P:System.Web.SiteMapNode.ParentNode" /> and <see cref="P:System.Web.SiteMapNode.ChildNodes" /> properties.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Provides an optimized lookup method for site map providers when retrieving an ancestor node for the currently requested page and fetching the descendant nodes for the ancestor.</para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>A <see cref="T:System.Web.SiteMapNode" /> that represents an ancestor <see cref="T:System.Web.SiteMapNode" /> of the currently requested page; otherwise, null, if the current or ancestor <see cref="T:System.Web.SiteMapNode" /> is not found or cannot be returned for the current user.</para>
        </returns>
        <param name="walkupLevels">
          <attribution license="cc4" from="Microsoft" modified="false" />The number of ancestor node levels to traverse when retrieving the requested ancestor node. </param>
        <param name="relativeDepthFromWalkup">
          <attribution license="cc4" from="Microsoft" modified="false" />The number of descendant node levels to retrieve from the target ancestor node. </param>
      </Docs>
      <AssemblyInfo>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
      </AssemblyInfo>
    </Member>
    <Member MemberName="GetParentNodeRelativeToNodeAndHintDownFromParent">
      <MemberSignature Language="C#" Value="public virtual System.Web.SiteMapNode GetParentNodeRelativeToNodeAndHintDownFromParent (System.Web.SiteMapNode node, int walkupLevels, int relativeDepthFromWalkup);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Web.SiteMapNode</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="node" Type="System.Web.SiteMapNode" />
        <Parameter Name="walkupLevels" Type="System.Int32" />
        <Parameter Name="relativeDepthFromWalkup" Type="System.Int32" />
      </Parameters>
      <Docs>
        <since version=".NET 2.0" />
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The default implementation of the <see cref="T:System.Web.SiteMapProvider" /> class provides a non-optimized implementation of the <see cref="M:System.Web.SiteMapProvider.GetParentNodeRelativeToNodeAndHintDownFromParent(System.Web.SiteMapNode,System.Int32,System.Int32)" /> method, calling the <see cref="M:System.Web.SiteMapProvider.HintAncestorNodes(System.Web.SiteMapNode,System.Int32)" /> and <see cref="M:System.Web.SiteMapProvider.HintNeighborhoodNodes(System.Web.SiteMapNode,System.Int32,System.Int32)" /> methods; however, site map providers can override the <see cref="M:System.Web.SiteMapProvider.GetParentNodeRelativeToNodeAndHintDownFromParent(System.Web.SiteMapNode,System.Int32,System.Int32)" /> method and provide an optimized implementation that uses custom caching mechanisms to return the ancestor node and perform an optimized lookup of the other <see cref="T:System.Web.SiteMapNode" /> objects.  The <see cref="M:System.Web.SiteMapProvider.GetParentNodeRelativeToNodeAndHintDownFromParent(System.Web.SiteMapNode,System.Int32,System.Int32)" /> method is very similar to the <see cref="M:System.Web.SiteMapProvider.GetParentNodeRelativeToCurrentNodeAndHintDownFromParent(System.Int32,System.Int32)" /> method. </para>
          <para>The <paramref name="walkupLevels" /> parameter is used to specify how many levels of parent and ancestor nodes to traverse when retrieving the target node. If fewer levels exist than are requested, null is returned. The <paramref name="downLevel" /> parameter is used to specify how many levels of descendant nodes from the target ancestor node to retrieve. If preferred, the ancestor and descendant nodes can be linked to the <see cref="T:System.Web.SiteMapNode" /> that is returned by the <see cref="M:System.Web.SiteMapProvider.GetParentNodeRelativeToNodeAndHintDownFromParent(System.Web.SiteMapNode,System.Int32,System.Int32)" /> method, using the <see cref="P:System.Web.SiteMapNode.ParentNode" /> and <see cref="P:System.Web.SiteMapNode.ChildNodes" /> properties. If there are fewer ancestor node levels than specified by the <paramref name="upLevel" /> parameter, null is returned.  It is up to the provider implementer to decide how to handle the situation where the number of available descendant node levels is less than the value that is specified by the <paramref name="downLevel" /> parameter.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Provides an optimized lookup method for site map providers when retrieving an ancestor node for the specified <see cref="T:System.Web.SiteMapNode" /> object and fetching its child nodes.</para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>A <see cref="T:System.Web.SiteMapNode" /> that represents an ancestor of <paramref name="node" />; otherwise, null, if the current or ancestor <see cref="T:System.Web.SiteMapNode" /> is not found or cannot be returned for the current user.</para>
        </returns>
        <param name="node">
          <attribution license="cc4" from="Microsoft" modified="false" />The <see cref="T:System.Web.SiteMapNode" /> that acts as a reference point for <paramref name="walkupLevels" /> and <paramref name="relativeDepthFromWalkup" />. </param>
        <param name="walkupLevels">
          <attribution license="cc4" from="Microsoft" modified="false" />The number of ancestor node levels to traverse when retrieving the requested ancestor node.</param>
        <param name="relativeDepthFromWalkup">
          <attribution license="cc4" from="Microsoft" modified="false" />The number of descendant node levels to retrieve from the target ancestor node.</param>
      </Docs>
      <AssemblyInfo>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
      </AssemblyInfo>
    </Member>
    <Member MemberName="GetRootNodeCore">
      <MemberSignature Language="C#" Value="protected abstract System.Web.SiteMapNode GetRootNodeCore ();" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Web.SiteMapNode</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The <see cref="M:System.Web.SiteMapProvider.GetRootNodeCore" /> method enables a parent provider in a provider hierarchy to obtain a <see cref="T:System.Web.SiteMapNode" /> object that acts as a frame of reference for building the provider hierarchy and the larger site map node hierarchy that is the sum of the site map data that each provider manages. </para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>When overridden in a derived class, retrieves the root node of all the nodes that are currently managed by the current provider. </para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>A <see cref="T:System.Web.SiteMapNode" /> that represents the root node of the set of nodes that the current provider manages. </para>
        </returns>
      </Docs>
    </Member>
    <Member MemberName="GetRootNodeCoreFromProvider">
      <MemberSignature Language="C#" Value="protected static System.Web.SiteMapNode GetRootNodeCoreFromProvider (System.Web.SiteMapProvider provider);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Web.SiteMapNode</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="provider" Type="System.Web.SiteMapProvider" />
      </Parameters>
      <Docs>
        <since version=".NET 2.0" />
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The default implementation calls the abstract <see cref="M:System.Web.SiteMapProvider.GetRootNodeCore" /> method on the specified <paramref name="provider" />.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Retrieves the root node of all the nodes that are currently managed by the specified site map provider.</para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>A <see cref="T:System.Web.SiteMapNode" /> that represents the root node of the set of nodes that is managed by <paramref name="provider" />.</para>
        </returns>
        <param name="provider">
          <attribution license="cc4" from="Microsoft" modified="false" />The provider that calls the <see cref="M:System.Web.SiteMapProvider.GetRootNodeCore" />.</param>
      </Docs>
      <AssemblyInfo>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
      </AssemblyInfo>
    </Member>
    <Member MemberName="HintAncestorNodes">
      <MemberSignature Language="C#" Value="public virtual void HintAncestorNodes (System.Web.SiteMapNode node, int upLevel);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="node" Type="System.Web.SiteMapNode" />
        <Parameter Name="upLevel" Type="System.Int32" />
      </Parameters>
      <Docs>
        <since version=".NET 2.0" />
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The default <see cref="M:System.Web.SiteMapProvider.HintAncestorNodes(System.Web.SiteMapNode,System.Int32)" /> method only checks for an <paramref name="upLevel" /> parameter that is less than -1 and a <paramref name="node" /> parameter that is null. Because the <see cref="T:System.Web.XmlSiteMapProvider" /> class caches site map information in memory, the <see cref="M:System.Web.SiteMapProvider.HintAncestorNodes(System.Web.SiteMapNode,System.Int32)" /> method is not used.</para>
          <para>Site map providers can override the <see cref="M:System.Web.SiteMapProvider.HintAncestorNodes(System.Web.SiteMapNode,System.Int32)" /> method to perform an optimized retrieval of parent and ancestor nodes of the specified <see cref="T:System.Web.SiteMapNode" /> object. </para>
          <para>The <paramref name="upLevel" /> parameter is used to specify how many levels of parent and ancestor nodes to traverse from the specified <see cref="T:System.Web.SiteMapNode" />. If fewer levels exist than are requested, all available ancestor nodes are returned within the specified bound. If preferred, the parent node can be linked to the specified <see cref="T:System.Web.SiteMapNode" /> using the <see cref="P:System.Web.SiteMapNode.ParentNode" /> property.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Provides a method that site map providers can override to perform an optimized retrieval of one or more levels of parent and ancestor nodes, relative to the specified <see cref="T:System.Web.SiteMapNode" /> object. </para>
        </summary>
        <param name="node">
          <attribution license="cc4" from="Microsoft" modified="false" />The <see cref="T:System.Web.SiteMapNode" /> that acts as a reference point for <paramref name="upLevel" />.</param>
        <param name="upLevel">
          <attribution license="cc4" from="Microsoft" modified="false" />The number of ancestor <see cref="T:System.Web.SiteMapNode" /> generations to fetch. 0 indicates no ancestor nodes are retrieved and -1 indicates that all ancestors might be retrieved and cached.</param>
      </Docs>
      <AssemblyInfo>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
      </AssemblyInfo>
    </Member>
    <Member MemberName="HintNeighborhoodNodes">
      <MemberSignature Language="C#" Value="public virtual void HintNeighborhoodNodes (System.Web.SiteMapNode node, int upLevel, int downLevel);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="node" Type="System.Web.SiteMapNode" />
        <Parameter Name="upLevel" Type="System.Int32" />
        <Parameter Name="downLevel" Type="System.Int32" />
      </Parameters>
      <Docs>
        <since version=".NET 2.0" />
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The default <see cref="M:System.Web.SiteMapProvider.HintNeighborhoodNodes(System.Web.SiteMapNode,System.Int32,System.Int32)" /> method only checks for an <paramref name="upLevel" /> and <paramref name="downLevel" /> parameters that are less than -1 and a <paramref name="node" /> parameter that is null. Because the <see cref="T:System.Web.XmlSiteMapProvider" /> object caches site map information in memory, the <see cref="M:System.Web.SiteMapProvider.HintNeighborhoodNodes(System.Web.SiteMapNode,System.Int32,System.Int32)" /> method is not used.</para>
          <para>Site map providers can override the <see cref="M:System.Web.SiteMapProvider.HintNeighborhoodNodes(System.Web.SiteMapNode,System.Int32,System.Int32)" /> method to perform an optimized lookup of the <see cref="T:System.Web.SiteMapNode" /> objects in the proximity of the specified <see cref="T:System.Web.SiteMapNode" />. The <paramref name="upLevel" /> parameter is used to specify how many levels of parent and ancestor nodes to traverse from the specified <see cref="T:System.Web.SiteMapNode" />. The <paramref name="downLevel" /> parameter is used to specify how many levels of child nodes from the current node to retrieve. If preferred, the ancestor and descendant nodes can be linked to the <see cref="T:System.Web.SiteMapNode" /> that is returned by the <see cref="M:System.Web.SiteMapProvider.HintNeighborhoodNodes(System.Web.SiteMapNode,System.Int32,System.Int32)" /> method, using the <see cref="P:System.Web.SiteMapNode.ParentNode" /> and <see cref="P:System.Web.SiteMapNode.ChildNodes" /> properties.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Provides a method that site map providers can override to perform an optimized retrieval of nodes found in the proximity of the specified node. </para>
        </summary>
        <param name="node">
          <attribution license="cc4" from="Microsoft" modified="false" />The <see cref="T:System.Web.SiteMapNode" /> that acts as a reference point for <paramref name="upLevel" />.</param>
        <param name="upLevel">
          <attribution license="cc4" from="Microsoft" modified="false" />The number of ancestor <see cref="T:System.Web.SiteMapNode" /> generations to fetch. 0 indicates no ancestor nodes are retrieved and -1 indicates that all ancestors (and their descendant nodes to the level of <paramref name="node" />) might be retrieved and cached.</param>
        <param name="downLevel">
          <attribution license="cc4" from="Microsoft" modified="false" />The number of descendant <see cref="T:System.Web.SiteMapNode" /> generations to fetch. 0 indicates no descendant nodes are retrieved and -1 indicates that all descendant nodes might be retrieved and cached.</param>
      </Docs>
      <AssemblyInfo>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
      </AssemblyInfo>
    </Member>
    <Member MemberName="Initialize">
      <MemberSignature Language="C#" Value="public override void Initialize (string name, System.Collections.Specialized.NameValueCollection attributes);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="name" Type="System.String" />
        <Parameter Name="attributes" Type="System.Collections.Specialized.NameValueCollection" />
      </Parameters>
      <Docs>
        <since version=".NET 2.0" />
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The <see cref="M:System.Web.SiteMapProvider.Initialize(System.String,System.Collections.Specialized.NameValueCollection)" /> method does not actually build a site map, it only prepares the state of the <see cref="T:System.Web.SiteMapProvider" /> object to do so. The default implementation initializes the <see cref="P:System.Web.SiteMapProvider.SecurityTrimmingEnabled" /> property for the site map provider from the site navigation configuration.</para>
          <para>Classes that derive from the <see cref="T:System.Web.SiteMapProvider" /> can override the <see cref="M:System.Web.SiteMapProvider.Initialize(System.String,System.Collections.Specialized.NameValueCollection)" /> method to initialize any state and resources that are required to load site map data from persistent storage. For example, if your derived class is using files to store site map data, any file initialization can be performed in the <see cref="M:System.Web.SiteMapProvider.Initialize(System.String,System.Collections.Specialized.NameValueCollection)" /> method. If the derived class uses some other type of data store, such as a relational database, initializing a database connection might be performed.</para>
          <para>Additional attributes, such as file names or connection strings, are read by the ASP.NET configuration system and passed to the <see cref="M:System.Web.SiteMapProvider.Initialize(System.String,System.Collections.Specialized.NameValueCollection)" /> method with its <see cref="T:System.Collections.Specialized.NameValueCollection" /> parameter.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Initializes the <see cref="T:System.Web.SiteMapProvider" /> implementation, including any resources that are needed to load site map data from persistent storage.</para>
        </summary>
        <param name="name">
          <attribution license="cc4" from="Microsoft" modified="false" />The <see cref="P:System.Configuration.Provider.ProviderBase.Name" /> of the provider to initialize. </param>
        <param name="attributes">
          <attribution license="cc4" from="Microsoft" modified="false" />A <see cref="T:System.Collections.Specialized.NameValueCollection" /> that can contain additional attributes to help initialize the provider. These attributes are read from the site map provider configuration in the Web.config file. </param>
      </Docs>
      <AssemblyInfo>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
      </AssemblyInfo>
    </Member>
    <Member MemberName="IsAccessibleToUser">
      <MemberSignature Language="C#" Value="public virtual bool IsAccessibleToUser (System.Web.HttpContext context, System.Web.SiteMapNode node);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Boolean</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="context" Type="System.Web.HttpContext" />
        <Parameter Name="node" Type="System.Web.SiteMapNode" />
      </Parameters>
      <Docs>
        <since version=".NET 2.0" />
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The default behavior when security trimming is enabled is as described in the following table.</para>
          <list type="table">
            <listheader>
              <item>
                <term>
                  <para>Condition</para>
                </term>
                <description>
                  <para>Return Value</para>
                </description>
              </item>
            </listheader>
            <item>
              <term>
                <para>The <see cref="P:System.Web.SiteMapNode.Roles" /> exists on <paramref name="node" /> and the current user is in at least one of the specified roles.</para>
                <para>- or -</para>
                <para>The current thread has an associated WindowsIdentity that has file access to the requested URL and the URL is located within the directory structure for the application.</para>
                <para>- or -</para>
                <para>The current user is authorized specifically for the requested URL in the authorization element for the current application and the URL is located within the directory structure for the application.</para>
              </term>
              <description>
                <para>true</para>
              </description>
            </item>
            <item>
              <term>
                <para>None of the preceding conditions is met.</para>
              </term>
              <description>
                <para>false</para>
              </description>
            </item>
          </list>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Retrieves a Boolean value indicating whether the specified <see cref="T:System.Web.SiteMapNode" /> object can be viewed by the user in the specified context.</para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>true if security trimming is enabled and <paramref name="node" /> can be viewed by the user or security trimming is not enabled; otherwise, false.</para>
        </returns>
        <param name="context">
          <attribution license="cc4" from="Microsoft" modified="false" />The <see cref="T:System.Web.HttpContext" /> that contains user information.</param>
        <param name="node">
          <attribution license="cc4" from="Microsoft" modified="false" />The <see cref="T:System.Web.SiteMapNode" /> that is requested by the user.</param>
      </Docs>
      <AssemblyInfo>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
      </AssemblyInfo>
    </Member>
    <Member MemberName="ParentProvider">
      <MemberSignature Language="C#" Value="public virtual System.Web.SiteMapProvider ParentProvider { set; get; }" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>System.Web.SiteMapProvider</ReturnType>
      </ReturnValue>
      <Docs>
        <value>To be added.</value>
        <since version=".NET 2.0" />
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>All classes that implement the abstract <see cref="T:System.Web.SiteMapProvider" /> class can support the concept of a site map provider hierarchy. Any hierarchical relationships between providers are maintained outside the scope of a <see cref="T:System.Web.SiteMapProviderCollection" /> collection by the providers themselves. For an example of a functional provider hierarchy, see <see cref="T:System.Web.XmlSiteMapProvider" />.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Gets or sets the parent <see cref="T:System.Web.SiteMapProvider" /> object of the current provider.</para>
        </summary>
      </Docs>
      <AssemblyInfo>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
      </AssemblyInfo>
    </Member>
    <Member MemberName="RemoveNode">
      <MemberSignature Language="C#" Value="protected virtual void RemoveNode (System.Web.SiteMapNode node);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="node" Type="System.Web.SiteMapNode" />
      </Parameters>
      <Docs>
        <since version=".NET 2.0" />
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Classes deriving from the <see cref="T:System.Web.SiteMapProvider" /> class can override the <see cref="M:System.Web.SiteMapProvider.RemoveNode(System.Web.SiteMapNode)" /> method and provide logic for removing <see cref="T:System.Web.SiteMapNode" /> objects from the node collection that is maintained by the site map provider. The default implementation of the <see cref="M:System.Web.SiteMapProvider.RemoveNode(System.Web.SiteMapNode)" /> method throws a <see cref="T:System.NotImplementedException" /> exception.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Removes the specified <see cref="T:System.Web.SiteMapNode" /> object from the node collection that is maintained by the site map provider.</para>
        </summary>
        <param name="node">
          <attribution license="cc4" from="Microsoft" modified="false" />The <see cref="T:System.Web.SiteMapNode" /> to remove from the node collection maintained by the provider.</param>
      </Docs>
      <AssemblyInfo>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
      </AssemblyInfo>
    </Member>
    <Member MemberName="ResolveSiteMapNode">
      <MemberSignature Language="C#" Value="protected System.Web.SiteMapNode ResolveSiteMapNode (System.Web.HttpContext context);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Web.SiteMapNode</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="context" Type="System.Web.HttpContext" />
      </Parameters>
      <Docs>
        <since version=".NET 2.0" />
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The <paramref name="context" /> parameter and a reference to the provider that called the <see cref="M:System.Web.SiteMapProvider.ResolveSiteMapNode(System.Web.HttpContext)" /> method are passed to the constructor of any associated <see cref="T:System.Web.SiteMapResolveEventArgs" /> object.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Raises the <see cref="E:System.Web.SiteMapProvider.SiteMapResolve" /> event. </para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>A <see cref="T:System.Web.SiteMapNode" /> provided by the event handler delegate that is registered to handle the event or, if more than one delegate is registered to handle the event, the return value of the last delegate in the delegate chain; otherwise, null. </para>
        </returns>
        <param name="context">
          <attribution license="cc4" from="Microsoft" modified="false" />The <see cref="T:System.Web.HttpContext" /> for which the site map currently exists. </param>
      </Docs>
      <AssemblyInfo>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
      </AssemblyInfo>
    </Member>
    <Member MemberName="ResourceKey">
      <MemberSignature Language="C#" Value="public string ResourceKey { set; get; }" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>System.String</ReturnType>
      </ReturnValue>
      <Docs>
        <value>To be added.</value>
        <since version=".NET 2.0" />
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The <see cref="P:System.Web.SiteMapProvider.ResourceKey" /> property is used with the <see cref="M:System.Web.SiteMapNode.GetImplicitResourceString(System.String)" /> method of the <see cref="T:System.Web.SiteMapNode" /> class. For the <see cref="P:System.Web.SiteMapNode.Title" /> and <see cref="P:System.Web.SiteMapNode.Description" /> properties, as well as any additional attributes that are defined in the <see cref="P:System.Web.SiteMapNode.Attributes" /> collection of the <see cref="T:System.Web.SiteMapNode" /> object, the <see cref="M:System.Web.SiteMapNode.GetImplicitResourceString(System.String)" /> method takes precedence over the <see cref="M:System.Web.SiteMapNode.GetExplicitResourceString(System.String,System.String,System.Boolean)" /> when the localization is enabled with the <see cref="P:System.Web.SiteMapProvider.EnableLocalization" /> property set to true. </para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Get or sets the resource key that is used for localizing <see cref="T:System.Web.SiteMapNode" /> attributes. </para>
        </summary>
      </Docs>
      <AssemblyInfo>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
      </AssemblyInfo>
    </Member>
    <Member MemberName="RootNode">
      <MemberSignature Language="C#" Value="public virtual System.Web.SiteMapNode RootNode { get; }" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>System.Web.SiteMapNode</ReturnType>
      </ReturnValue>
      <Docs>
        <value>To be added.</value>
        <since version=".NET 2.0" />
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The default implementation calls the abstract <see cref="M:System.Web.SiteMapProvider.GetRootNodeCore" /> method.</para>
          <para />
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Gets the root <see cref="T:System.Web.SiteMapNode" /> object of the site map data that the current provider represents.</para>
        </summary>
      </Docs>
      <AssemblyInfo>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
      </AssemblyInfo>
    </Member>
    <Member MemberName="RootProvider">
      <MemberSignature Language="C#" Value="public virtual System.Web.SiteMapProvider RootProvider { get; }" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>System.Web.SiteMapProvider</ReturnType>
      </ReturnValue>
      <Docs>
        <value>To be added.</value>
        <since version=".NET 2.0" />
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>All classes that implement the <see cref="T:System.Web.SiteMapProvider" /> class can support the concept of a site map provider hierarchy. Any hierarchical relationships between providers are maintained outside the scope of a <see cref="T:System.Web.SiteMapProviderCollection" /> collection by the providers themselves. For an example of a functional provider hierarchy, see <see cref="T:System.Web.XmlSiteMapProvider" />.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Gets the root <see cref="T:System.Web.SiteMapProvider" /> object in the current provider hierarchy.</para>
        </summary>
      </Docs>
      <AssemblyInfo>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
      </AssemblyInfo>
    </Member>
    <Member MemberName="SecurityTrimmingEnabled">
      <MemberSignature Language="C#" Value="public bool SecurityTrimmingEnabled { get; }" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>System.Boolean</ReturnType>
      </ReturnValue>
      <Docs>
        <value>To be added.</value>
        <since version=".NET 2.0" />
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Security trimming cannot be set programmatically—it is set in the configuration for the provider.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Gets a Boolean value indicating whether a site map provider filters site map nodes based on a user's role.</para>
        </summary>
      </Docs>
      <AssemblyInfo>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
      </AssemblyInfo>
    </Member>
    <Member MemberName="SiteMapResolve">
      <MemberSignature Language="C#" Value="public event System.Web.SiteMapResolveEventHandler SiteMapResolve;" />
      <MemberType>Event</MemberType>
      <ReturnValue>
        <ReturnType>System.Web.SiteMapResolveEventHandler</ReturnType>
      </ReturnValue>
      <Docs>
        <since version=".NET 2.0" />
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>You can create a <see cref="T:System.Web.SiteMapNode" /> representation of the currently requested page without implementing a custom site map provider by subscribing to the <see cref="E:System.Web.SiteMapProvider.SiteMapResolve" /> event. Subscribers attach a <see cref="T:System.Web.SiteMapResolveEventHandler" /> object to receive notification when the <see cref="P:System.Web.SiteMapProvider.CurrentNode" /> property is called and can return a custom <see cref="T:System.Web.SiteMapNode" /> object instead of the default one that is returned by the <see cref="P:System.Web.SiteMapProvider.CurrentNode" /> property.  </para>
          <para>For more information about handling events, see <format type="text/html"><a href="01e4f1bc-e55e-413f-98c7-6588493e5f67">Consuming Events</a></format>. </para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Occurs when the <see cref="P:System.Web.SiteMapProvider.CurrentNode" /> property is called. </para>
        </summary>
      </Docs>
      <AssemblyInfo>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
      </AssemblyInfo>
    </Member>
  </Members>
</Type>