Condividi tramite


StaticSiteMapProvider Classe

Definizione

Viene utilizzato come implementazione parziale della classe SiteMapProvider abstract e come classe base per la classe XmlSiteMapProvider, che rappresenta il provider della mappa del sito predefinito in ASP.NET.

public ref class StaticSiteMapProvider abstract : System::Web::SiteMapProvider
public abstract class StaticSiteMapProvider : System.Web.SiteMapProvider
type StaticSiteMapProvider = class
    inherit SiteMapProvider
Public MustInherit Class StaticSiteMapProvider
Inherits SiteMapProvider
Ereditarietà
StaticSiteMapProvider
Derivato

Esempio

Nell'esempio di codice seguente viene illustrato come estendere la StaticSiteMapProvider classe per usare Microsoft Access come provider della mappa del sito. La AccessSiteMapProvider classe è un provider di mappe del sito che supporta solo una semplice gerarchia completa a un livello. La tabella in cui sono archiviati i dati della mappa del sito ha la struttura seguente:

NODEID URL            NAME       PARENTNODEID  
 ---------------------------------------------  
 1      default.aspx   Default    <NULL>  
 2      catalog.aspx   Catalog    1  
 3      aboutus.aspx   Contact Us 1  
...  

La AccessSiteMapProvider classe è derivata dalla StaticSiteMapProvider classe e recupera le informazioni da un database di Microsoft Access usando query SQL di base e gli OleDbCommand oggetti e OleDbDataReader .

#using <System.Data.dll>
#using <System.Transactions.dll>
#using <System.EnterpriseServices.dll>
#using <System.dll>
#using <System.Web.dll>
#using <System.Configuration.dll>

using namespace System;
using namespace System::Collections;
using namespace System::Collections::Specialized;
using namespace System::Configuration;
using namespace System::Data;
using namespace System::Data::OleDb;
using namespace System::Security::Permissions;
using namespace System::Web;

/// An extremely simple AccessSiteMapProvider that only supports a
/// site map node hierarchy 1 level deep.

[AspNetHostingPermission(SecurityAction::Demand,Level=AspNetHostingPermissionLevel::Minimal)]
public ref class AccessSiteMapProvider: public StaticSiteMapProvider
{
private:
   SiteMapNode ^ rootNode;
   OleDbConnection^ accessConnection;

   // This string is case sensitive.
   String^ AccessConnectionStringName;

public:
   // Implement a default constructor.
   AccessSiteMapProvider()
   {
      initialized = false;
      AccessConnectionStringName = "accessSiteMapConnectionString";
   }


private:

   // Some basic state to help track the initialization state of the provider.
   bool initialized;

public:

   property bool IsInitialized 
   {
      virtual bool get()
      {
         return initialized;
      }

   }

   property SiteMapNode ^ RootNode 
   {

      // Return the root node of the current site map.
      virtual SiteMapNode ^ get() override
      {
         SiteMapNode ^ temp = nullptr;
         temp = BuildSiteMap();
         return temp;
      }

   }

protected:

   virtual SiteMapNode ^ GetRootNodeCore() override
   {
      return RootNode;
   }


public:

   // Initialize is used to initialize the properties and any state that the
   // AccessProvider holds, but is not used to build the site map.
   // The site map is built when the BuildSiteMap method is called.
   virtual void Initialize( String^ name, NameValueCollection^ attributes ) override
   {
      if ( IsInitialized )
            return;

      StaticSiteMapProvider::Initialize( name, attributes );
      
      // Create and test the connection to the Microsoft Access database.
      // Retrieve the Value of the Access connection string from the
      // attributes NameValueCollection.
      String^ connectionString = attributes[ AccessConnectionStringName ];
      if ( nullptr == connectionString || connectionString->Length == 0 )
            throw gcnew Exception( "The connection string was not found." );
      else
            accessConnection = gcnew OleDbConnection( connectionString );

      initialized = true;
   }


protected:

   ///
   /// SiteMapProvider and StaticSiteMapProvider methods that this derived class must override.
   ///
   // Clean up any collections or other state that an instance of this may hold.
   virtual void Clear() override
   {
      System::Threading::Monitor::Enter( this );
      try
      {
         rootNode = nullptr;
         StaticSiteMapProvider::Clear();
      }
      finally
      {
         System::Threading::Monitor::Exit( this );
      }

   }


public:

   // Build an in-memory representation from persistent
   // storage, and return the root node of the site map.
   virtual SiteMapNode ^ BuildSiteMap() override
   {
      // Since the SiteMap class is static, make sure that it is
      // not modified while the site map is built.
      System::Threading::Monitor::Enter( this );
      try
      {
         
         // If there is no initialization, this method is being
         // called out of order.
         if (  !IsInitialized )
         {
            throw gcnew Exception( "BuildSiteMap called incorrectly." );
         }
         
         // If there is no root node, then there is no site map.
         if ( nullptr == rootNode )
         {
            
            // Start with a clean slate
            Clear();
            
            // Select the root node of the site map from Microsoft Access.
            int rootNodeId = -1;
            if ( accessConnection->State == ConnectionState::Closed )
               accessConnection->Open();
            
            OleDbCommand^ rootNodeCommand = gcnew OleDbCommand
               ("SELECT nodeid, url, name FROM SiteMap WHERE parentnodeid IS NULL", accessConnection);
            OleDbDataReader^ rootNodeReader = rootNodeCommand->ExecuteReader();
            if ( rootNodeReader->HasRows )
            {
               rootNodeReader->Read();
               rootNodeId = rootNodeReader->GetInt32( 0 );
               
               // Create a SiteMapNode that references the current StaticSiteMapProvider.
               rootNode = gcnew SiteMapNode(this, rootNodeId.ToString(), 
                  rootNodeReader->GetString( 1 ),rootNodeReader->GetString( 2 ));
            }
            else
               return nullptr;
            rootNodeReader->Close();
            
            // Select the child nodes of the root node.
            OleDbCommand^ childNodesCommand = gcnew OleDbCommand
               ("SELECT nodeid, url, name FROM SiteMap WHERE parentnodeid = ?", accessConnection);
            OleDbParameter^ rootParam = gcnew OleDbParameter( "parentid", OleDbType::Integer);
            rootParam->Value = rootNodeId;
            childNodesCommand->Parameters->Add( rootParam );
            OleDbDataReader^ childNodesReader = childNodesCommand->ExecuteReader();
            if ( childNodesReader->HasRows )
            {
               SiteMapNode ^ childNode = nullptr;
               while ( childNodesReader->Read() )
               {
                  childNode = gcnew SiteMapNode( this, 
                      System::Convert::ToString(childNodesReader->GetInt32( 0 )),
                     childNodesReader->GetString( 1 ),
                     childNodesReader->GetString( 2 ) 
                  );
                  // Use the SiteMapNode AddNode method to add
                  // the SiteMapNode to the ChildNodes collection.
                  AddNode( childNode, rootNode );
               }
            }
            childNodesReader->Close();
            accessConnection->Close();
         }
         return rootNode;
      }
      finally
      {
         System::Threading::Monitor::Exit( this );
      }

   }

};
namespace Samples.AspNet.CS.Controls {

    using System;
    using System.Collections;
    using System.Collections.Specialized;
    using System.Data;
    using System.Data.OleDb;
    using System.Security.Permissions;
    using System.Web;

    /// An extremely simple AccessSiteMapProvider that only supports a
    /// site map node hierarchy 1 level deep.
    [AspNetHostingPermission(SecurityAction.Demand, Level=AspNetHostingPermissionLevel.Minimal)]
    public class AccessSiteMapProvider : StaticSiteMapProvider
    {
        private SiteMapNode rootNode =  null;
        private OleDbConnection accessConnection = null;

        // This string is case sensitive.
        private string AccessConnectionStringName = "accessSiteMapConnectionString";

        // Implement a default constructor.
        public AccessSiteMapProvider () { }

        // Some basic state to help track the initialization state of the provider.
        private bool initialized = false;
        public virtual bool IsInitialized {
            get {
                return initialized;
            }
        }
        // Return the root node of the current site map.
        public override SiteMapNode RootNode {
            get {
                SiteMapNode temp = null;
                temp = BuildSiteMap();
                return temp;
            }
        }
        protected override SiteMapNode GetRootNodeCore() {
            return RootNode;
        }
        // Initialize is used to initialize the properties and any state that the
        // AccessProvider holds, but is not used to build the site map.
        // The site map is built when the BuildSiteMap method is called.
        public override void Initialize(string name, NameValueCollection attributes) {
            if (IsInitialized)
                return;

            base.Initialize(name, attributes);

            // Create and test the connection to the Microsoft Access database.

            // Retrieve the Value of the Access connection string from the
            // attributes NameValueCollection.
            string connectionString = attributes[AccessConnectionStringName];

            if (null == connectionString || connectionString.Length == 0)
                throw new Exception ("The connection string was not found.");
            else
                accessConnection = new OleDbConnection(connectionString);

            initialized = true;
        }

        ///
        /// SiteMapProvider and StaticSiteMapProvider methods that this derived class must override.
        ///
        // Clean up any collections or other state that an instance of this may hold.
        protected override void Clear() {
            lock (this) {
                rootNode = null;
                base.Clear();
            }
        }

        // Build an in-memory representation from persistent
        // storage, and return the root node of the site map.
        public override SiteMapNode BuildSiteMap() {

            // Since the SiteMap class is static, make sure that it is
            // not modified while the site map is built.
            lock(this) {

                // If there is no initialization, this method is being
                // called out of order.
                if (! IsInitialized) {
                    throw new Exception("BuildSiteMap called incorrectly.");
                }

                // If there is no root node, then there is no site map.
                if (null == rootNode) {
                    // Start with a clean slate
                    Clear();

                    // Select the root node of the site map from Microsoft Access.
                    int rootNodeId = -1;

                    if (accessConnection.State == ConnectionState.Closed)
                        accessConnection.Open();
                    OleDbCommand rootNodeCommand =
                        new OleDbCommand("SELECT nodeid, url, name FROM SiteMap WHERE parentnodeid IS NULL",
                                         accessConnection);
                    OleDbDataReader rootNodeReader = rootNodeCommand.ExecuteReader();

                    if(rootNodeReader.HasRows) {
                        rootNodeReader.Read();
                        rootNodeId = rootNodeReader.GetInt32(0);
                        // Create a SiteMapNode that references the current StaticSiteMapProvider.
                        rootNode   = new SiteMapNode(this,
                                                     rootNodeId.ToString(),
                                                     rootNodeReader.GetString(1),
                                                     rootNodeReader.GetString(2));
                    }
                    else
                    {
                        return null;
                    }

                    rootNodeReader.Close();
                    // Select the child nodes of the root node.
                    OleDbCommand childNodesCommand =
                        new OleDbCommand("SELECT nodeid, url, name FROM SiteMap WHERE parentnodeid = ?",
                                         accessConnection);
                    OleDbParameter rootParam = new OleDbParameter("parentid", OleDbType.Integer);
                    rootParam.Value = rootNodeId;
                    childNodesCommand.Parameters.Add(rootParam);

                    OleDbDataReader childNodesReader = childNodesCommand.ExecuteReader();

                    if (childNodesReader.HasRows) {

                        SiteMapNode childNode = null;
                        while(childNodesReader.Read()) {
                            childNode =  new SiteMapNode(this,
                                                         childNodesReader.GetInt32(0).ToString(),
                                                         childNodesReader.GetString(1),
                                                         childNodesReader.GetString(2));

                            // Use the SiteMapNode AddNode method to add
                            // the SiteMapNode to the ChildNodes collection.
                            AddNode(childNode, rootNode);
                        }
                    }

                    childNodesReader.Close();
                    accessConnection.Close();
                }
                return rootNode;
            }
        }
    }
}
Imports System.Collections
Imports System.Collections.Specialized
Imports System.Data
Imports System.Data.OleDb
Imports System.Security.Permissions
Imports System.Web

Namespace Samples.AspNet.VB.Controls
 
    ' An extremely simple AccessSiteMapProvider that only supports a
    ' site map node hierarchy one level deep.
    <AspNetHostingPermission(SecurityAction.Demand, Level:=AspNetHostingPermissionLevel.Minimal)> _
    Public Class AccessSiteMapProvider
        Inherits StaticSiteMapProvider

        Private aRootNode As SiteMapNode = Nothing
        Private accessConnection As OleDbConnection = Nothing

        ' This string is case sensitive.
        Private AccessConnectionStringName As String = "accessSiteMapConnectionString"

        ' Implement a default constructor.
        Public Sub New()
        End Sub

        ' Some basic state to help track the initialization state of the provider.
        Private initialized As Boolean = False

        Public Overridable ReadOnly Property IsInitialized() As Boolean
            Get
                Return initialized
            End Get
        End Property

        ' Return the root node of the current site map.
        Public Overrides ReadOnly Property RootNode() As SiteMapNode
            Get
                Return BuildSiteMap()
            End Get
        End Property

        Protected Overrides Function GetRootNodeCore() As SiteMapNode
            Return RootNode
        End Function

        ' Initialize is used to initialize the properties and any state that the
        ' AccessProvider holds, but is not used to build the site map.
        ' The site map is built when the BuildSiteMap method is called.
        Public Overrides Sub Initialize(ByVal name As String, ByVal attributes As NameValueCollection)
            If IsInitialized Then
                Return
            End If
            MyBase.Initialize(name, attributes)

            ' Create and test the connection to the Microsoft Access database.
            ' Retrieve the Value of the Access connection string from the
            ' attributes NameValueCollection.
            Dim connectionString As String = attributes(AccessConnectionStringName)

            If Nothing = connectionString OrElse connectionString.Length = 0 Then
                Throw New Exception("The connection string was not found.")
            Else
                accessConnection = New OleDbConnection(connectionString)
            End If
            initialized = True
        End Sub

        ' SiteMapProvider and StaticSiteMapProvider methods that this derived class must override.
        '
        ' Clean up any collections or other state that an instance of this may hold.
        Protected Overrides Sub Clear()
            SyncLock Me
                aRootNode = Nothing
                MyBase.Clear()
            End SyncLock
        End Sub

        ' Build an in-memory representation from persistent
        ' storage, and return the root node of the site map.
        Public Overrides Function BuildSiteMap() As SiteMapNode

            ' Since the SiteMap class is static, make sure that it is
            ' not modified while the site map is built.
            SyncLock Me

                ' If there is no initialization, this method is being
                ' called out of order.
                If Not IsInitialized Then
                    Throw New Exception("BuildSiteMap called incorrectly.")
                End If

                ' If there is no root node, then there is no site map.
                If aRootNode Is Nothing Then
                    ' Start with a clean slate
                    Clear()

                    ' Select the root node of the site map from Microsoft Access.
                    Dim rootNodeId As Integer = -1

                    If accessConnection.State = ConnectionState.Closed Then
                        accessConnection.Open()
                    End If
                    Dim rootNodeCommand As New OleDbCommand("SELECT nodeid, url, name FROM SiteMap WHERE parentnodeid IS NULL", accessConnection)
                    Dim rootNodeReader As OleDbDataReader = rootNodeCommand.ExecuteReader()

                    If rootNodeReader.HasRows Then
                        rootNodeReader.Read()
                        rootNodeId = rootNodeReader.GetInt32(0)
                        ' Create a SiteMapNode that references the current StaticSiteMapProvider.
                        aRootNode = New SiteMapNode(Me, rootNodeId.ToString(), rootNodeReader.GetString(1), rootNodeReader.GetString(2))
                    Else
                        Return Nothing
                    End If
                    rootNodeReader.Close()
                    ' Select the child nodes of the root node.
                    Dim childNodesCommand As New OleDbCommand("SELECT nodeid, url, name FROM SiteMap WHERE parentnodeid = ?", accessConnection)
                    Dim rootParam As New OleDbParameter("parentid", OleDbType.Integer)
                    rootParam.Value = rootNodeId
                    childNodesCommand.Parameters.Add(rootParam)

                    Dim childNodesReader As OleDbDataReader = childNodesCommand.ExecuteReader()

                    If childNodesReader.HasRows Then

                        Dim childNode As SiteMapNode = Nothing
                        While childNodesReader.Read()
                            childNode = New SiteMapNode(Me, _
                            childNodesReader.GetInt32(0).ToString(), _
                            childNodesReader.GetString(1), _
                            childNodesReader.GetString(2))

                            ' Use the SiteMapNode AddNode method to add
                            ' the SiteMapNode to the ChildNodes collection.
                            AddNode(childNode, aRootNode)
                        End While
                    End If

                    childNodesReader.Close()
                    accessConnection.Close()
                End If
                Return aRootNode
            End SyncLock

        End Function 'BuildSiteMap

    End Class

End Namespace

Infine, viene AccessSiteMapProvider configurato come provider predefinito nel file di Web.config seguente.

<configuration>  
  <system.web>  
    <siteMap defaultProvider="AccessSiteMapProvider">  
     <providers>  
       <add   
         name="AccessSiteMapProvider"  
         type="Samples.AspNet.AccessSiteMapProvider,Samples.AspNet "  
         accessSiteMapConnectionString="PROVIDER=MICROSOFT.JET.OLEDB.4.0;DATA SOURCE=sitemap.mdb "/>  
     </providers>   
    </siteMap>  
  </system.web>  
</configuration>  

Commenti

La StaticSiteMapProvider classe è un'implementazione parziale della classe astratta SiteMapProvider e fornisce due metodi aggiuntivi: AddNode e RemoveNode, nonché i metodi astratti BuildSiteMap e protetti Clear .

La StaticSiteMapProvider classe supporta la scrittura di un provider di mappe del sito (ad esempio, un XmlSiteMapProvider) che converte una mappa del sito archiviata in una risorsa di archiviazione permanente in una risorsa archiviata in memoria. La StaticSiteMapProvider classe fornisce implementazioni di base per l'archiviazione e il recupero di SiteMapNode oggetti.

Le SiteMapProvider classi e StaticSiteMapProvider supportano il concetto di gerarchia del provider di mappe del sito, in cui un provider di mappe del sito può avere una relazione gerarchica con altri provider di mappe del sito. Questo modello viene implementato con le RootProvider proprietà e ParentProvider .

La StaticSiteMapProvider classe archivia gli SiteMapNode oggetti nelle tabelle hash e usa internamente la SiteMapNode.Url proprietà delle pagine, rappresentata dai nodi della mappa del sito, come chiavi. Se un nodo della mappa del sito non specifica un URL, viene monitorato usando una chiave univoca generata automaticamente. Di conseguenza, non è possibile avere nodi della mappa del sito in cui un nodo della mappa del sito con lo stesso URL viene usato più volte. Ad esempio, se si tenta di caricare il nodo della mappa del sito illustrato nell'esempio di codice seguente con la XmlSiteMapProvider classe , ovvero il provider predefinito ASP.NET mappa del sito o qualsiasi provider di mappe del sito derivato dalla StaticSiteMapProvider classe non funzionerà perché la pagina AboutUs.aspx viene usata più volte.

<sitemap>  
  <sitemapnode title="Home" description="Home" url="default.aspx" >  
    <sitemapnode title="Catalog" description="Our catalog" url="catalog.aspx"/>  
    <sitemapnode title="About Us" description="All about our company" url="aboutus.aspx"/>  
    <sitemapnode title="Driving Directions" description="Directions to our store" url="aboutus.aspx"/>  
  </sitemapnode>  
</sitemap>  

Se si estende la StaticSiteMapProvider classe, i tre metodi più importanti sono i GetRootNodeCoremetodi , Initializee BuildSiteMap . I Clear metodi e FindSiteMapNode hanno implementazioni predefinite sufficienti per la maggior parte delle implementazioni del provider della mappa del sito personalizzate.

Il Initialize metodo viene chiamato per inizializzare i provider di mappe del sito derivati, incluse le risorse necessarie per caricare i dati della mappa del sito, ma tenta di compilare il nodo della mappa del sito in memoria. Se la classe derivata usa file per archiviare i dati della mappa del sito, è possibile eseguire qui qualsiasi inizializzazione dei file. Se il nodo della mappa del sito usa un altro tipo di archivio dati, ad esempio un database relazionale, l'inizializzazione di una connessione potrebbe essere eseguita qui. Altri attributi, ad esempio i nomi di file o le stringhe di connessione posizionati nell'elemento del provider della mappa del sito nella configurazione, vengono elaborati dal sistema di configurazione ASP.NET e passati al metodo con il Initializeattributes parametro .

Il BuildSiteMap metodo deve essere sottoposto a override da tutte le classi derivate dalla StaticSiteMapProvider classe e viene chiamato per caricare il nodo della mappa del sito dall'archiviazione permanente e convertirlo in una rappresentazione interna. Il BuildSiteMap metodo viene chiamato internamente in molte implementazioni dei membri predefinite delle StaticSiteMapProvider classi e XmlSiteMapProvider . Se si implementa il proprio provider di mappe del sito, assicurarsi che l'elaborazione dei dati della mappa del sito venga eseguita una volta e le chiamate successive al BuildSiteMap metodo restituiscano immediatamente, se le informazioni sulla mappa del sito sono già state caricate. Quando si implementa il BuildSiteMap metodo , assicurarsi che sia thread-safe, poiché più richieste di pagine simultanee possono generare indirettamente più chiamate per caricare le informazioni sulla mappa del sito. L'infrastruttura della mappa del sito supporta la visualizzazione delle informazioni sulla mappa del sito in base al ruolo dell'utente. A seconda della Roles proprietà supportata dai singoli SiteMapNode oggetti, può esistere una struttura di navigazione diversa per utenti diversi. Le implementazioni predefinite dei membri di recupero dei nodi della mappa del sito della StaticSiteMapProvider classe eseguono automaticamente il trimming di sicurezza chiamando il IsAccessibleToUser metodo .

I AddNodemetodi , Clear e RemoveNode modificano le raccolte interne usate per tenere traccia dei nodi della mappa del sito in modo thread-safe.

Note per gli implementatori

Quando si eredita dalla StaticSiteMapProvider classe , è necessario eseguire l'override del membro seguente: BuildSiteMap().

Costruttori

StaticSiteMapProvider()

Inizializza una nuova istanza della classe StaticSiteMapProvider.

Proprietà

CurrentNode

Ottiene l'oggetto SiteMapNode che rappresenta la pagina attualmente richiesta.

(Ereditato da SiteMapProvider)
Description

Ottiene una breve descrizione di facile comprensione che è possibile visualizzare in strumenti di amministrazione o in altre interfacce utente (UI, User Interface).

(Ereditato da ProviderBase)
EnableLocalization

Ottiene o imposta un valore booleano che indica se i valori personalizzati degli attributi SiteMapNode vengono restituiti.

(Ereditato da SiteMapProvider)
Name

Ottiene il nome descrittivo utilizzato per fare riferimento al provider durante la configurazione.

(Ereditato da ProviderBase)
ParentProvider

Ottiene o imposta l'oggetto SiteMapProvider padre del provider corrente.

(Ereditato da SiteMapProvider)
ResourceKey

Ottiene o imposta la chiave di risorsa usata per localizzare gli attributi di SiteMapNode.

(Ereditato da SiteMapProvider)
RootNode

Ottiene l'oggetto SiteMapNode radice dei dati della mappa del sito rappresentati dal provider corrente.

(Ereditato da SiteMapProvider)
RootProvider

Ottiene l'oggetto SiteMapProvider radice della gerarchia di provider corrente.

(Ereditato da SiteMapProvider)
SecurityTrimmingEnabled

Ottiene un valore booleano che indica se un provider della mappa del sito filtra i nodi della mappa del sito in base al ruolo dell'utente.

(Ereditato da SiteMapProvider)

Metodi

AddNode(SiteMapNode, SiteMapNode)

Aggiunge una classe SiteMapNode agli insiemi gestiti dal provider della mappa del sito e stabilisce una relazione padre/figlio tra gli oggetti SiteMapNode.

AddNode(SiteMapNode)

Aggiunge un oggetto SiteMapNode alla raccolta dei nodi gestiti dal provider della mappa del sito.

(Ereditato da SiteMapProvider)
BuildSiteMap()

Quando sottoposto a override in una classe derivata, carica le informazioni sulla mappa del sito dall'archivio permanente e lo compila nella memoria.

Clear()

Rimuove tutti gli elementi negli insiemi di nodi figlio e padre della mappa del sito che la classe StaticSiteMapProvider traccia come parte del relativo stato.

Equals(Object)

Determina se l'oggetto specificato è uguale all'oggetto corrente.

(Ereditato da Object)
FindSiteMapNode(HttpContext)

Recupera un oggetto SiteMapNode che rappresenta la pagina attualmente richiesta usando l'oggetto HttpContext specificato.

(Ereditato da SiteMapProvider)
FindSiteMapNode(String)

Recupera un oggetto SiteMapNode che rappresenta la pagina nell'URL specificato.

FindSiteMapNodeFromKey(String)

Recupera un oggetto SiteMapNode a partire da una chiave specificata.

GetChildNodes(SiteMapNode)

Recupera i nodi figlio della mappa del sito di un oggetto SiteMapNode specifico.

GetCurrentNodeAndHintAncestorNodes(Int32)

Specifica un metodo di ricerca ottimizzato per i provider della mappa del sito al momento del recupero del nodo per la pagina richiesta attualmente e dei nodi padre e predecessore per la mappa del sito per la pagina corrente.

(Ereditato da SiteMapProvider)
GetCurrentNodeAndHintNeighborhoodNodes(Int32, Int32)

Specifica un metodo di ricerca ottimizzato per i provider della mappa del sito al momento del recupero del nodo per la pagina richiesta attualmente e dei nodi della mappa del sito in prossimità del nodo corrente.

(Ereditato da SiteMapProvider)
GetHashCode()

Funge da funzione hash predefinita.

(Ereditato da Object)
GetParentNode(SiteMapNode)

Recupera il nodo padreo della mappa del sito di un oggetto SiteMapNode specifico.

GetParentNodeRelativeToCurrentNodeAndHintDownFromParent(Int32, Int32)

Specifica un metodo di ricerca ottimizzato per i provider della mappa del sito al momento del recupero di un nodo predecessore per la pagina richiesta attualmente e dei nodi discendente per il predecessore.

(Ereditato da SiteMapProvider)
GetParentNodeRelativeToNodeAndHintDownFromParent(SiteMapNode, Int32, Int32)

Specifica un metodo di ricerca ottimizzato per i provider della mappa del sito quando si recupera un nodo predecessore per l'oggetto SiteMapNode specificato insieme ai relativi nodi figlio.

(Ereditato da SiteMapProvider)
GetRootNodeCore()

Quando sottoposto a override in una classe derivata, recupera il nodo radice di tutti i nodi gestiti attualmente dal provider corrente.

(Ereditato da SiteMapProvider)
GetType()

Ottiene l'oggetto Type dell'istanza corrente.

(Ereditato da Object)
HintAncestorNodes(SiteMapNode, Int32)

Specifica un metodo del quale i provider della mappa del sito possono eseguire l'override per un recupero ottimizzato di uno o più livelli di nodi padre e predecessore, in relazione all'oggetto SiteMapNode specificato.

(Ereditato da SiteMapProvider)
HintNeighborhoodNodes(SiteMapNode, Int32, Int32)

Specifica un metodo del quale i provider della mappa del sito possono eseguire l'override per un recupero ottimizzato dei nodi trovati in prossimità del nodo specificato.

(Ereditato da SiteMapProvider)
Initialize(String, NameValueCollection)

Inizializza l'implementazione SiteMapProvider, incluse le risorse necessarie per caricare i dati della mappa del sito dall'archiviazione persistente.

(Ereditato da SiteMapProvider)
IsAccessibleToUser(HttpContext, SiteMapNode)

Recupera un valore booleano che indica se l'oggetto SiteMapNode specificato può essere visualizzato dall'utente nel contesto specifico.

(Ereditato da SiteMapProvider)
MemberwiseClone()

Crea una copia superficiale dell'oggetto Object corrente.

(Ereditato da Object)
RemoveNode(SiteMapNode)

Rimuove l'oggetto SiteMapNode specificato da tutti gli insiemi di nodi della mappa del sito tracciati dal provider della mappa del sito.

ResolveSiteMapNode(HttpContext)

Genera l'evento SiteMapResolve.

(Ereditato da SiteMapProvider)
ToString()

Restituisce una stringa che rappresenta l'oggetto corrente.

(Ereditato da Object)

Eventi

SiteMapResolve

Si verifica quando viene chiamata la proprietà CurrentNode.

(Ereditato da SiteMapProvider)

Si applica a

Vedi anche