StaticSiteMapProvider Klasse

Definition

Fungiert als Teilimplementierung einer abstrakten SiteMapProvider-Klasse sowie als Basisklasse für die XmlSiteMapProvider-Klasse, die Standardsiteübersichtsanbieter in ASP.NET ist.

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
Vererbung
StaticSiteMapProvider
Abgeleitet

Beispiele

Im folgenden Codebeispiel wird veranschaulicht, wie Sie die StaticSiteMapProvider -Klasse erweitern, um Microsoft Access als Siteübersichtsanbieter zu verwenden. Die AccessSiteMapProvider -Klasse ist ein Siteübersichtsanbieter, der nur eine einfache, einstufige Hierarchie unterstützt. Die Tabelle, in der die Siteübersichtsdaten gespeichert sind, weist die folgende Struktur auf:

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

Die AccessSiteMapProvider -Klasse wird von der StaticSiteMapProvider -Klasse abgeleitet und ruft ihre Informationen aus einer Microsoft Access-Datenbank mithilfe grundlegender SQL-Abfragen und der OleDbCommand -Objekte und OleDbDataReader ab.

#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

Schließlich wird der AccessSiteMapProvider als Standardanbieter in der folgenden Web.config-Datei konfiguriert.

<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>  

Hinweise

Die StaticSiteMapProvider -Klasse ist eine partielle Implementierung der abstrakten SiteMapProvider Klasse und stellt zwei zusätzliche Methoden bereit: AddNode und RemoveNodesowie die abstrakten BuildSiteMap und geschützten Clear Methoden.

Die StaticSiteMapProvider -Klasse unterstützt das Schreiben eines Siteübersichtsanbieters (z. B. eines XmlSiteMapProvider), der eine Im persistenten Speicher gespeicherte Siteübersicht in einen im Arbeitsspeicher gespeicherten Übersetzt. Die StaticSiteMapProvider -Klasse stellt grundlegende Implementierungen zum Speichern und Abrufen von SiteMapNode Objekten bereit.

Die SiteMapProvider Klassen und StaticSiteMapProvider unterstützen das Konzept einer Siteübersichtsanbieterhierarchie, in der ein Siteübersichtsanbieter eine hierarchische Beziehung zu anderen Siteübersichtsanbietern haben kann. Dieses Muster wird mit den RootProvider Eigenschaften und ParentProvider implementiert.

Die StaticSiteMapProvider -Klasse speichert ihre SiteMapNode Objekte in Hashtabellen und verwendet intern die SiteMapNode.Url Eigenschaft der Seiten, die durch Siteübersichtsknoten dargestellt werden, als Schlüssel. (Wenn ein Siteübersichtsknoten keine URL angibt, wird er mithilfe eines automatisch generierten eindeutigen Schlüssels nachverfolgt.) Daher können Sie keine Siteübersichtsknoten haben, auf denen ein Siteübersichtsknoten mit derselben URL mehr als einmal verwendet wird. Beispielsweise funktioniert der Versuch, den im folgenden Codebeispiel veranschaulichten Siteübersichtsknoten mit der XmlSiteMapProvider -Klasse zu laden, die der Standard ASP.NET Siteübersichtsanbieters ist, oder ein von der StaticSiteMapProvider Klasse abgeleiteter Siteübersichtsanbieter, da die Seite AboutUs.aspx mehr als einmal verwendet wird.

<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>  

Wenn Sie die StaticSiteMapProvider -Klasse erweitern, sind die drei wichtigsten Methoden die GetRootNodeCoreMethoden , Initializeund BuildSiteMap . Die Clear Methoden und FindSiteMapNode verfügen über Standardimplementierungen, die für die meisten Implementierungen benutzerdefinierter Siteübersichtsanbieter ausreichend sind.

Die Initialize -Methode wird aufgerufen, um abgeleitete Siteübersichtsanbieter zu initialisieren, einschließlich aller Ressourcen, die zum Laden von Siteübersichtsdaten erforderlich sind, aber sie versucht, den Standortzuordnungsknoten im Arbeitsspeicher zu erstellen. Wenn Ihre abgeleitete Klasse Dateien zum Speichern von Siteübersichtsdaten verwendet, kann hier jede Dateiinitialisierung durchgeführt werden. Wenn der Siteübersichtsknoten einen anderen Datentyp verwendet, z. B. eine relationale Datenbank, kann hier die Initialisierung einer Verbindung durchgeführt werden. Zusätzliche Attribute, z. B. Dateinamen oder Verbindungszeichenfolgen, die in der Konfiguration im Siteübersichtsanbieterelement platziert werden, werden vom ASP.NET-Konfigurationssystem verarbeitet und mit dem -Parameter an die Initializeattributes -Methode übergeben.

Die BuildSiteMap -Methode muss von allen Klassen überschrieben werden, die von der StaticSiteMapProvider -Klasse abgeleitet sind, und wird aufgerufen, um den Siteübersichtsknoten aus persistentem Speicher zu laden und in eine interne Darstellung zu konvertieren. Die BuildSiteMap Methode wird intern in vielen der Standardmemberimplementierungen der StaticSiteMapProvider Klassen und XmlSiteMapProvider aufgerufen. Wenn Sie Einen eigenen Siteübersichtsanbieter implementieren, stellen Sie sicher, dass die Verarbeitung der Siteübersichtsdaten einmal erfolgt und nachfolgende Aufrufe der BuildSiteMap Methode sofort zurückgegeben werden, wenn Siteübersichtsinformationen bereits geladen wurden. Wenn Sie die BuildSiteMap Methode implementieren, stellen Sie sicher, dass sie threadsicher ist, da mehrere gleichzeitige Seitenanforderungen indirekt zu mehreren Aufrufen zum Laden von Siteübersichtsinformationen führen können. Die Standortübersichtsinfrastruktur unterstützt das Anzeigen von Siteübersichtsinformationen basierend auf der Rolle des Benutzers. Abhängig von der Roles Eigenschaft, die von den einzelnen SiteMapNode Objekten unterstützt wird, kann für unterschiedliche Benutzer eine andere Navigationsstruktur vorhanden sein. Die Standardimplementierungen der Knotenabrufmitglieder der StaticSiteMapProvider -Klasse führen die Sicherheitskürzung automatisch durch Aufrufen der IsAccessibleToUser -Methode durch.

Die AddNodeMethoden , Clear und RemoveNode bearbeiten die internen Auflistungen, die verwendet werden, um Websitezuordnungsknoten threadsicher nachzuverfolgen.

Hinweise für Ausführende

Wenn Sie von der StaticSiteMapProvider -Klasse erben, müssen Sie das folgende Element außer Kraft setzen: BuildSiteMap().

Konstruktoren

StaticSiteMapProvider()

Initialisiert eine neue Instanz der StaticSiteMapProvider-Klasse.

Eigenschaften

CurrentNode

Ruft das SiteMapNode-Objekt ab, das die gerade angeforderte Seite darstellt.

(Geerbt von SiteMapProvider)
Description

Ruft eine kurze, benutzerfreundliche Beschreibung ab, die für die Anzeige in Verwaltungstools oder anderen Benutzeroberflächen geeignet ist.

(Geerbt von ProviderBase)
EnableLocalization

Ruft einen booleschen Wert ab, der angibt, ob lokalisierte Werte von SiteMapNode-Attributen zurückgegeben werden, oder legt diesen Wert fest.

(Geerbt von SiteMapProvider)
Name

Ruft den Anzeigennamen ab, der verwendet wird, um während der Konfiguration auf den Anbieter zu verweisen.

(Geerbt von ProviderBase)
ParentProvider

Ruft das übergeordnete SiteMapProvider-Objekt des aktuellen Anbieters ab oder legt dieses fest.

(Geerbt von SiteMapProvider)
ResourceKey

Ruft den Ressourcenschlüssel zum Lokalisieren von SiteMapNode-Attributen ab oder legt diesen fest.

(Geerbt von SiteMapProvider)
RootNode

Ruft das SiteMapNode-Stammobjekt der Siteübersichtsdaten ab, die der aktuelle Anbieter darstellt.

(Geerbt von SiteMapProvider)
RootProvider

Ruft das SiteMapProvider-Stammobjekt in der aktuellen Anbieterhierarchie ab.

(Geerbt von SiteMapProvider)
SecurityTrimmingEnabled

Ruft einen booleschen Wert ab, der angibt, ob ein Siteübersichtsanbieter Siteübersichtsknoten auf seiner Benutzerrolle basierend filtert.

(Geerbt von SiteMapProvider)

Methoden

AddNode(SiteMapNode)

Fügt der vom Siteübersichtsanbieter verwalteten Knotenauflistung ein SiteMapNode-Objekt hinzu.

(Geerbt von SiteMapProvider)
AddNode(SiteMapNode, SiteMapNode)

Fügt den vom Siteübersichtsanbieter verwalteten Auflistungen einen SiteMapNode hinzu und richtet eine Über- bzw. Unterordnungsbeziehung zwischen den SiteMapNode-Objekten ein.

BuildSiteMap()

Lädt beim Überschreiben in einer abgeleiteten Klasse die Siteübersichtsinformationen aus dem permanenten Speicher und erstellt sie im Arbeitsspeicher.

Clear()

Entfernt alle Elemente in den Auflistungen von untergeordneten und übergeordneten Siteübersichtsknoten, die der StaticSiteMapProvider gemäß seinem Zustand nachverfolgt.

Equals(Object)

Bestimmt, ob das angegebene Objekt gleich dem aktuellen Objekt ist.

(Geerbt von Object)
FindSiteMapNode(HttpContext)

Ruft ein SiteMapNode-Objekt ab, das die gerade angeforderte Seite mithilfe des angegebenen HttpContext-Objekts darstellt.

(Geerbt von SiteMapProvider)
FindSiteMapNode(String)

Ruft ein SiteMapNode-Objekt ab, das die Seite an der angegebenen URL darstellt.

FindSiteMapNodeFromKey(String)

Ruft ein SiteMapNode-Objekt auf Grundlage eines angegebenen Schlüssels ab.

GetChildNodes(SiteMapNode)

Ruft die untergeordneten Siteübersichtsknoten eines bestimmten SiteMapNode-Objekts ab.

GetCurrentNodeAndHintAncestorNodes(Int32)

Stellt Siteübersichtsanbietern eine optimierte Nachschlagemethode zum Abrufen des Knotens für die gerade angeforderte Seite und zum Abrufen der mittelbar und unmittelbar übergeordneten Knoten für die aktuelle Seite bereit.

(Geerbt von SiteMapProvider)
GetCurrentNodeAndHintNeighborhoodNodes(Int32, Int32)

Stellt Siteübersichtsanbietern eine optimierte Nachschlagemethode zum Abrufen des Knotens für die gerade angeforderte Seite und zum Abrufen der Siteübersichtsknoten im unmittelbaren Umfeld des aktuellen Knotens bereit.

(Geerbt von SiteMapProvider)
GetHashCode()

Fungiert als Standardhashfunktion.

(Geerbt von Object)
GetParentNode(SiteMapNode)

Ruft den übergeordneten Siteübersichtsknoten eines bestimmten SiteMapNode-Objekts ab.

GetParentNodeRelativeToCurrentNodeAndHintDownFromParent(Int32, Int32)

Stellt Siteübersichtsanbietern eine optimierte Nachschlagemethode zum Abrufen eines mittelbar übergeordneten Knotens für die gerade angeforderte Seite und zum Abrufen der mittelbar untergeordneten Knoten für den übergeordneten Knoten bereit.

(Geerbt von SiteMapProvider)
GetParentNodeRelativeToNodeAndHintDownFromParent(SiteMapNode, Int32, Int32)

Stellt Siteübersichtsanbietern eine optimierte Nachschlagemethode zum Abrufen eines mittelbar übergeordneten Knotens für das angegebene SiteMapNode-Objekt und zum Abrufen der unmittelbar untergeordneten Knoten bereit.

(Geerbt von SiteMapProvider)
GetRootNodeCore()

Ruft beim Überschreiben in einer abgeleiteten Klasse den Stammknoten aller Knoten ab, die gegenwärtig vom aktuellen Anbieter verwaltet werden.

(Geerbt von SiteMapProvider)
GetType()

Ruft den Type der aktuellen Instanz ab.

(Geerbt von Object)
HintAncestorNodes(SiteMapNode, Int32)

Stellt eine Methode bereit, die Siteübersichtsanbieter überschreiben können, um mindestens eine Ebene mittelbar und unmittelbar übergeordneter Knoten (relativ zum angegebenen SiteMapNode-Objekt) optimal abzurufen.

(Geerbt von SiteMapProvider)
HintNeighborhoodNodes(SiteMapNode, Int32, Int32)

Stellt eine Methode bereit, die Siteübersichtsanbieter überschreiben können, um einen optimierten Abruf von Knoten auszuführen, die im unmittelbaren Umfeld des angegebenen Knotens gefunden werden.

(Geerbt von SiteMapProvider)
Initialize(String, NameValueCollection)

Initialisiert die SiteMapProvider-Implementierung einschließlich aller Ressourcen, die benötigt werden, um Siteübersichtsdaten aus dem permanenten Speicher zu laden.

(Geerbt von SiteMapProvider)
IsAccessibleToUser(HttpContext, SiteMapNode)

Ruft einen booleschen Wert ab, der angibt, ob das angegebene SiteMapNode-Objekt vom Benutzer im angegebenen Kontext angezeigt werden kann.

(Geerbt von SiteMapProvider)
MemberwiseClone()

Erstellt eine flache Kopie des aktuellen Object.

(Geerbt von Object)
RemoveNode(SiteMapNode)

Entfernt das angegebene SiteMapNode-Objekt aus allen Siteübersichtsknotenauflistungen, die vom Siteübersichtsanbieter nachverfolgt werden.

ResolveSiteMapNode(HttpContext)

Löst das SiteMapResolve-Ereignis aus.

(Geerbt von SiteMapProvider)
ToString()

Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt.

(Geerbt von Object)

Ereignisse

SiteMapResolve

Tritt ein, wenn die CurrentNode-Eigenschaft aufgerufen wird.

(Geerbt von SiteMapProvider)

Gilt für:

Weitere Informationen