StaticSiteMapProvider 클래스

정의

추상 SiteMapProvider 클래스의 부분적 구현 상태로, ASP.NET에서 기본 사이트 맵 공급자인 XmlSiteMapProvider 클래스에 대한 기본 클래스로 작동합니다.

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
상속
StaticSiteMapProvider
파생

예제

다음 코드 예제에서는 어떻게 확장할 수는 StaticSiteMapProvider 사이트 맵 공급자 Microsoft Access를 사용 하는 클래스입니다. AccessSiteMapProvider 클래스는 간단 하 고 심층 수준-1-계층이 하나만 지 원하는 사이트 맵 공급자입니다. 사이트 맵 데이터에 저장 된 테이블에 다음과 같은 구조:

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

AccessSiteMapProvider 에서 파생 된 클래스를 StaticSiteMapProvider 클래스 및 기본 SQL 쿼리를 사용 하 여 Microsoft Access 데이터베이스에서 해당 정보를 검색 하며 OleDbCommandOleDbDataReader 개체.

#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

마지막으로 AccessSiteMapProvider 다음 Web.config 파일에서 기본 공급자로 구성 됩니다.

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

설명

합니다 StaticSiteMapProvider 클래스는 추상 부분적으로 구현 SiteMapProvider 클래스 및 두 개의 추가 메서드를 제공: AddNode 하 고 RemoveNode, 추상 뿐만 아니라 BuildSiteMap 및 보호 된 Clear 메서드.

StaticSiteMapProvider 클래스는 영구 스토리지에 저장된 사이트 맵을 메모리에 저장된 사이트 맵으로 변환하는 사이트 맵 공급자(예: XmlSiteMapProvider) 작성을 지원합니다. 합니다 StaticSiteMapProvider 저장 및 검색에 대 한 기본 구현을 제공 하는 클래스 SiteMapNode 개체입니다.

합니다 SiteMapProviderStaticSiteMapProvider 클래스 사이트 맵 공급자를 다른 사이트 맵 공급자를 사용 하 여 계층 관계를 가질 수 있는 사이트 맵 공급자 계층의 개념을 지원 합니다. 이 패턴을 사용 하 여 구현 되는 RootProviderParentProvider 속성입니다.

StaticSiteMapProvider 저장소 클래스 해당 SiteMapNode 해시 테이블에 있는 개체를 내부적으로 사용 하는 SiteMapNode.Url 키로 사이트 맵 노드를 나타내는 페이지의 속성입니다. (사이트 맵 노드를 URL을 지정 하지 않는 경우 추적 됩니다 자동으로 생성 된 고유 키를 사용 합니다.) 결과적으로 동일한 URL 사용 하 여 사이트 맵 노드를 두 번 이상 사용 여기서 사이트 맵 노드 수는 없습니다. 예를 들어 다음 코드 예제 XmlSiteMapProvider 에 설명된 사이트 맵 노드를 기본 ASP.NET 사이트 맵 공급자인 클래스 또는 클래스에서 StaticSiteMapProvider 파생된 사이트 맵 공급자를 로드하려고 하면 AboutUs.aspx 페이지가 두 번 이상 사용되므로 작동하지 않습니다.

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

확장 하는 경우는 StaticSiteMapProvider 클래스는 세 가지 가장 중요 한 메서드는 합니다 GetRootNodeCoreInitialize, 및 BuildSiteMap 메서드. ClearFindSiteMapNode 메서드 한 대부분의 사용자 지정 사이트 맵 공급자 구현에 대 한 충분 한 기본 구현을 제공 합니다.

Initialize 메서드가 호출 되어 파생된 사이트 맵 공급자, 사이트 맵 데이터를 로드 하는 데 필요한 모든 리소스를 포함 하 여 초기화 하지만 메모리에서 사이트 맵 노드를 작성 하려고지 않습니다. 파생된 클래스를 사용 중인 경우 파일을 사이트 맵 데이터를 저장할 파일 초기화를 여기서 수행할 수 있습니다. 사이트 맵 노드를 다른 유형의 관계형 데이터베이스와 같은 데이터 저장소를 사용 하는 경우 연결을 초기화할 수행할 수 있습니다 같습니다. 와 같은 파일 이름 또는 연결 문자열 구성에서 사이트 맵 공급자 요소에 배치 된 ASP.NET 구성 시스템에서 처리 되 고 전달 된 추가 특성을 Initialize 메서드는 attributes 매개 변수입니다.

BuildSiteMap 메서드는 StaticSiteMapProvider 클래스에서 파생된 모든 클래스에서 재정의해야 하며 영구 스토리지에서 사이트 맵 노드를 로드하여 내부 표현으로 변환하도록 호출됩니다. BuildSiteMap 메서드는 내부적으로 다양 한 기본 멤버 구현에는 StaticSiteMapProviderXmlSiteMapProvider 클래스입니다. 고유한 사이트 맵 공급자를 구현 하는 경우, 사이트 맵 데이터 처리에 대 한 후속 호출을 한 번 발생 하는지 확인 합니다 BuildSiteMap 사이트 맵 정보 이미 로드 된 경우 메서드가 즉시 반환 합니다. 구현 하는 경우는 BuildSiteMap 메서드를 여러 동시 페이지 요청 사이트 맵 정보를 로드 하는 여러 호출에서 직접 발생할 수 있으므로 스레드로부터 안전한 지, 인지 확인 합니다. 사이트 맵 인프라에서 사용자의 역할에 따라 표시 사이트 맵 정보를 지원 합니다. 에 따라 합니다 Roles 개별 지 속성 SiteMapNode 개체를 다른 사용자에 대 한 다른 탐색 구조가 있을 수 있습니다. 사이트의 기본 구현을 맵의 노드 검색 멤버를 StaticSiteMapProvider 클래스 보안 조정을 자동으로 호출 하 여 수행 합니다 IsAccessibleToUser 메서드.

합니다 AddNode, ClearRemoveNode 메서드는 스레드로부터 안전한 방식으로 사이트 맵 노드를 추적 하는 데 사용 되는 내부 컬렉션을 조작 합니다.

구현자 참고

상속 하는 경우는 StaticSiteMapProvider 클래스에 다음 멤버를 재정의 해야 합니다: BuildSiteMap()합니다.

생성자

StaticSiteMapProvider()

StaticSiteMapProvider 클래스의 새 인스턴스를 초기화합니다.

속성

CurrentNode

현재 요청된 페이지를 나타내는 SiteMapNode 개체를 가져옵니다.

(다음에서 상속됨 SiteMapProvider)
Description

관리 도구나 다른 UI(사용자 인터페이스)에 표시하기에 적합한 간단하고 이해하기 쉬운 설명을 가져옵니다.

(다음에서 상속됨 ProviderBase)
EnableLocalization

SiteMapNode 특성의 지역화된 값을 반환할지 여부를 나타내는 부울 값을 가져오거나 설정합니다.

(다음에서 상속됨 SiteMapProvider)
Name

구성 중 공급자를 참조하는 데 사용되는 이름을 가져옵니다.

(다음에서 상속됨 ProviderBase)
ParentProvider

현재 공급자의 부모 SiteMapProvider 개체를 가져오거나 설정합니다.

(다음에서 상속됨 SiteMapProvider)
ResourceKey

SiteMapNode 특성을 지역화하는 데 사용되는 리소스 키를 가져오거나 설정합니다.

(다음에서 상속됨 SiteMapProvider)
RootNode

현재 공급자가 나타내는 사이트 맵 데이터의 루트 SiteMapNode 개체를 가져옵니다.

(다음에서 상속됨 SiteMapProvider)
RootProvider

현재 공급자 계층 구조의 루트 SiteMapProvider 개체를 가져옵니다.

(다음에서 상속됨 SiteMapProvider)
SecurityTrimmingEnabled

사이트 맵 공급자가 사용자 역할을 기반으로 사이트 맵 노드를 필터링할지 여부를 나타내는 부울 값을 가져옵니다.

(다음에서 상속됨 SiteMapProvider)

메서드

AddNode(SiteMapNode)

사이트 맵 공급자가 유지 관리하는 노드 컬렉션에 SiteMapNode 개체를 추가합니다.

(다음에서 상속됨 SiteMapProvider)
AddNode(SiteMapNode, SiteMapNode)

사이트 맵 공급자가 유지 관리하는 컬렉션에 SiteMapNode를 추가하고 SiteMapNode 개체 간 부모/자식 관계를 설정합니다.

BuildSiteMap()

파생 클래스에서 재정의되면 영구 스토리지에서 사이트 맵 정보를 로드한 후 메모리에 빌드합니다.

Clear()

StaticSiteMapProvider가 상태의 일부로 추적하는 하위 및 상위 사이트 맵 노드의 컬렉션에서 모든 요소를 제거합니다.

Equals(Object)

지정된 개체가 현재 개체와 같은지 확인합니다.

(다음에서 상속됨 Object)
FindSiteMapNode(HttpContext)

지정한 SiteMapNode 개체를 사용하여 현재 요청된 페이지를 나타내는 HttpContext 개체를 검색합니다.

(다음에서 상속됨 SiteMapProvider)
FindSiteMapNode(String)

지정된 URL의 페이지를 나타내는 SiteMapNode 개체를 검색합니다.

FindSiteMapNodeFromKey(String)

지정된 키를 기반으로 SiteMapNode 개체를 검색합니다.

GetChildNodes(SiteMapNode)

특정 SiteMapNode 개체의 하위 사이트 맵 노드를 검색합니다.

GetCurrentNodeAndHintAncestorNodes(Int32)

현재 요청된 페이지의 노드를 검색하고 현재 페이지의 부모 및 상위 사이트 맵 노드를 페치할 때 사이트 맵 공급자에 최적화된 조회 방법을 제공합니다.

(다음에서 상속됨 SiteMapProvider)
GetCurrentNodeAndHintNeighborhoodNodes(Int32, Int32)

현재 요청된 페이지의 노드를 검색하고 현재 노드와 근접한 위치에서 사이트 맵 노드를 페치할 때 사이트 맵 공급자에 최적화된 조회 방법을 제공합니다.

(다음에서 상속됨 SiteMapProvider)
GetHashCode()

기본 해시 함수로 작동합니다.

(다음에서 상속됨 Object)
GetParentNode(SiteMapNode)

특정 SiteMapNode 개체의 상위 사이트 맵 노드를 검색합니다.

GetParentNodeRelativeToCurrentNodeAndHintDownFromParent(Int32, Int32)

현재 요청된 페이지의 상위 노드를 검색하고 상위 노드에 대한 하위 노드를 페치할 때 사이트 맵 공급자에 최적화된 조회 방법을 제공합니다.

(다음에서 상속됨 SiteMapProvider)
GetParentNodeRelativeToNodeAndHintDownFromParent(SiteMapNode, Int32, Int32)

지정된 SiteMapNode 개체에 대한 상위 노드를 검색하고 해당 자식 노드를 페치할 때 사이트 맵 공급자에 최적화된 조회 방법을 제공합니다.

(다음에서 상속됨 SiteMapProvider)
GetRootNodeCore()

파생 클래스에 재정의되면 현재 공급자가 현재 관리하는 모든 노드의 루트 노드를 검색합니다.

(다음에서 상속됨 SiteMapProvider)
GetType()

현재 인스턴스의 Type을 가져옵니다.

(다음에서 상속됨 Object)
HintAncestorNodes(SiteMapNode, Int32)

지정된 SiteMapNode 개체를 기준으로 하여 부모 및 상위 노드의 여러 수준을 최적화 상태로 검색하기 위해 사이트 맵 공급자가 재정의할 수 있는 메서드를 제공합니다.

(다음에서 상속됨 SiteMapProvider)
HintNeighborhoodNodes(SiteMapNode, Int32, Int32)

사이트 맵 공급자가 지정된 노드와 근접한 위치에 있는 노드에 대해 최적화된 검색을 수행하기 위해 재정의할 수 있는 메서드를 제공합니다.

(다음에서 상속됨 SiteMapProvider)
Initialize(String, NameValueCollection)

영구 스토리지에서 사이트 맵 데이터를 로드하는 데 필요한 모든 리소스를 비롯하여 SiteMapProvider 구현을 초기화합니다.

(다음에서 상속됨 SiteMapProvider)
IsAccessibleToUser(HttpContext, SiteMapNode)

사용자가 지정된 컨텍스트에서 지정된 SiteMapNode 개체를 볼 수 있는지 여부를 나타내는 부울 값을 검색합니다.

(다음에서 상속됨 SiteMapProvider)
MemberwiseClone()

현재 Object의 단순 복사본을 만듭니다.

(다음에서 상속됨 Object)
RemoveNode(SiteMapNode)

사이트 맵 공급자가 추적한 모든 사이트 맵 노드 컬렉션에서 지정된 SiteMapNode 개체를 제거합니다.

ResolveSiteMapNode(HttpContext)

SiteMapResolve 이벤트를 발생시킵니다.

(다음에서 상속됨 SiteMapProvider)
ToString()

현재 개체를 나타내는 문자열을 반환합니다.

(다음에서 상속됨 Object)

이벤트

SiteMapResolve

CurrentNode 속성이 호출될 때 발생합니다.

(다음에서 상속됨 SiteMapProvider)

적용 대상

추가 정보