StaticSiteMapProvider StaticSiteMapProvider StaticSiteMapProvider StaticSiteMapProvider Class

定義

SiteMapProvider 抽象クラスの部分実装として機能します。また、ASP.NET の既定のサイト マップ プロバイダーである XmlSiteMapProvider クラスの基本クラスとして機能します。Serves as a partial implementation of the abstract SiteMapProvider class and serves as a base class for the XmlSiteMapProvider class, which is the default site map provider 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
継承
派生

次のコード例は、 StaticSiteMapProviderクラスを拡張して Microsoft access をサイトマッププロバイダーとして使用する方法を示しています。The following code example demonstrates how you to extend the StaticSiteMapProvider class to use Microsoft Access as a site map provider. AccessSiteMapProviderクラスは、単純な1レベルの深い階層のみをサポートするサイトマッププロバイダーです。The AccessSiteMapProvider class is a site map provider that supports only a simple, one-level-deep hierarchy. サイトマップデータが格納されているテーブルには、次のような構造があります。The table that the site map data is stored in has the following structure:

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

クラスはStaticSiteMapProviderクラスから派生し、 OleDbCommand基本的な SQL クエリとオブジェクトおよびOleDbDataReaderオブジェクトを使用して、Microsoft access データベースからその情報を取得します。 AccessSiteMapProviderThe AccessSiteMapProvider class is derived from the StaticSiteMapProvider class and retrieves its information from a Microsoft Access database using basic SQL queries and the OleDbCommand and OleDbDataReader objects.

#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 ファイルの既定のプロバイダーとして構成されます。Finally, the AccessSiteMapProvider is configured as the default provider in the following Web.config file.

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

注釈

RemoveNode AddNode BuildSiteMap Clearクラスは、抽象SiteMapProviderクラスの部分的な実装であり、との2つの追加のメソッドに加えて、抽象メソッドと保護されたメソッドを提供します。 StaticSiteMapProviderThe StaticSiteMapProvider class is a partial implementation of the abstract SiteMapProvider class and supplies two additional methods: AddNode and RemoveNode, as well as the abstract BuildSiteMap and protected Clear methods.

クラスStaticSiteMapProviderは、永続ストレージに格納されているサイトマップXmlSiteMapProviderを、メモリに格納されているものに変換するサイトマッププロバイダー (たとえば、) の書き込みをサポートしています。The StaticSiteMapProvider class supports writing a site map provider (for example, an XmlSiteMapProvider) that translates a site map that is stored in persistent storage to one that is stored in memory. クラスStaticSiteMapProviderは、オブジェクトを格納および取得SiteMapNodeするための基本的な実装を提供します。The StaticSiteMapProvider class provides basic implementations for storing and retrieving SiteMapNode objects.

クラスSiteMapProviderStaticSiteMapProviderクラスは、サイトマッププロバイダー階層の概念をサポートします。サイトマッププロバイダーは、他のサイトマッププロバイダーと階層関係を持つことができます。The SiteMapProvider and StaticSiteMapProvider classes support the concept of a site map provider hierarchy, where a site map provider can have a hierarchical relationship with other site map providers. このパターンは、 RootProvider ParentProviderプロパティとプロパティを使用して実装されます。This pattern is implemented with the RootProvider and ParentProvider properties.

クラスStaticSiteMapProviderは、 SiteMapNodeオブジェクトをハッシュSiteMapNode.Urlテーブルに格納し、サイトマップノードによって表されるページのプロパティをキーとして内部で使用します。The StaticSiteMapProvider class stores its SiteMapNode objects in hash tables and internally uses the SiteMapNode.Url property of the pages, represented by site map nodes, as keys. (サイトマップノードで URL が指定されていない場合は、自動的に生成された一意のキーを使用して追跡されます)。そのため、同じ URL を持つサイトマップノードが複数回使用されているサイトマップノードを使用することはできません。(If a site map node does not specify a URL, it is tracked using an automatically generated unique key.) As a result, you cannot have site map nodes wherein a site map node with the same URL is used more than once. たとえば、次のコード例に示すように、既定の ASP.NET サイトマッププロバイダーでXmlSiteMapProviderあるクラスを使用してサイトマップノードを読み込もうとした場合、またはStaticSiteMapProviderクラスから派生したサイトマッププロバイダーが機能しません。AboutUs ページが複数回使用されています。For example, attempting to load the site map node illustrated in the following code example with the XmlSiteMapProvider class, which is the default ASP.NET site map provider, or any site map provider that is derived from the StaticSiteMapProvider class will not work because the AboutUs.aspx page is used more than once.

<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クラスを拡張する場合、最も重要な3つのメソッドGetRootNodeCoreは、 Initialize、、 BuildSiteMapおよびメソッドです。If you are extending the StaticSiteMapProvider class, the three most important methods are the GetRootNodeCore, Initialize, and BuildSiteMap methods. メソッドClearFindSiteMapNodeメソッドには、ほとんどのカスタムサイトマッププロバイダーの実装に十分な既定の実装があります。The Clear and FindSiteMapNode methods have default implementations that are sufficient for most custom site map provider implementations.

Initializeメソッドは、サイトマップデータの読み込みに必要なリソースを含め、派生したサイトマッププロバイダーを初期化するために呼び出されますが、サイトマップノードをメモリに構築しようとします。The Initialize method is called to initialize derived site map providers, including any resources that are required to load site map data, but it does attempt to build the site map node in memory. 派生クラスがファイルを使用してサイトマップデータを格納している場合は、ここですべてのファイルの初期化を実行できます。If your derived class is using files to store site map data, any file initialization can be performed here. サイトマップノードがリレーショナルデータベースなど、他の種類のデータストアを使用している場合、接続の初期化はここで実行される可能性があります。If the site map node uses some other type of data store, such as a relational database, initializing a connection might be performed here. 構成のサイトマッププロバイダー要素に配置されるファイル名や接続文字列などの追加の属性は、ASP.NET 構成システムによって処理され、 Initialize attributesパラメーターを使用してメソッドに渡されます。Additional attributes, such as file names or connection strings that are placed on the site map provider element in the configuration are processed by the ASP.NET configuration system and passed to the Initialize method with the attributes parameter.

メソッドBuildSiteMapは、 StaticSiteMapProviderクラスから派生したすべてのクラスでオーバーライドする必要があります。また、永続ストレージからサイトマップノードを読み込んで内部表現に変換するために呼び出されます。The BuildSiteMap method must be overridden by all classes that are derived from the StaticSiteMapProvider class and is called to load the site map node from persistent storage and convert it to an internal representation. メソッドは、クラスStaticSiteMapProviderおよびXmlSiteMapProviderクラスの既定のメンバー実装の多くで内部的に呼び出されます。 BuildSiteMapThe BuildSiteMap method is called internally in many of the default member implementations of the StaticSiteMapProvider and XmlSiteMapProvider classes. 独自のサイトマッププロバイダーを実装する場合は、サイトマップのデータ処理が1回行われ、 BuildSiteMapサイトマップ情報が既に読み込まれている場合は、メソッドへの後続の呼び出しがすぐに返されることを確認します。If you implement your own site map provider, ensure that site map data processing occurs once and subsequent calls to the BuildSiteMap method return immediately, if site map information has already been loaded. BuildSiteMapメソッドを実装する場合は、複数の同時ページ要求がサイトマップ情報を読み込むために複数の呼び出しに間接的に生じる可能性があるため、スレッドセーフであることを確認してください。When you implement the BuildSiteMap method, ensure it is thread safe, as multiple concurrent page requests can result indirectly in multiple calls to load site map information. サイトマップインフラストラクチャでは、ユーザーの役割に基づいてサイトマップ情報を表示できます。The site map infrastructure supports displaying site map information based on the user's role. Roles 個々SiteMapNodeのオブジェクトでサポートされているプロパティによっては、ユーザーごとに異なるナビゲーション構造が存在する場合があります。Depending on the Roles property that are supported by the individual SiteMapNode objects, a different navigation structure can exist for different users. StaticSiteMapProviderクラスのサイトマップノード取得メンバーの既定の実装では、 IsAccessibleToUserメソッドを呼び出すことによって、セキュリティによるトリミングが自動的に実行されます。The default implementations of the site map node retrieval members of the StaticSiteMapProvider class perform security trimming automatically by calling the IsAccessibleToUser method.

AddNodeClear およびRemoveNodeメソッドは、サイトマップノードをスレッドセーフな方法で追跡するために使用される内部コレクションを操作します。The AddNode, Clear and RemoveNode methods manipulate the internal collections that are used to track site map nodes in a thread-safe manner.

注意 (継承者)

StaticSiteMapProviderクラスから継承する場合は、次のBuildSiteMap()メンバーをオーバーライドする必要があります。When you inherit from the StaticSiteMapProvider class, you must override the following member: BuildSiteMap().

コンストラクター

StaticSiteMapProvider() StaticSiteMapProvider() StaticSiteMapProvider() StaticSiteMapProvider()

StaticSiteMapProvider クラスの新しいインスタンスを初期化します。Initializes a new instance of the StaticSiteMapProvider class.

メソッド

AddNode(SiteMapNode) AddNode(SiteMapNode) AddNode(SiteMapNode) AddNode(SiteMapNode)

サイト マップ プロバイダーが管理するノード コレクションに SiteMapNode オブジェクトを追加します。Adds a SiteMapNode object to the node collection that is maintained by the site map provider.

(Inherited from SiteMapProvider)
AddNode(SiteMapNode, SiteMapNode) AddNode(SiteMapNode, SiteMapNode) AddNode(SiteMapNode, SiteMapNode) AddNode(SiteMapNode, SiteMapNode)

SiteMapNode を、サイト マップ プロバイダーが管理するコレクションに追加し、SiteMapNode オブジェクト間の親子関係を確立します。Adds a SiteMapNode to the collections that are maintained by the site map provider and establishes a parent/child relationship between the SiteMapNode objects.

BuildSiteMap() BuildSiteMap() BuildSiteMap() BuildSiteMap()

派生クラスでオーバーライドされた場合は、サイト マップ情報を永続ストレージから読み込み、メモリ内で構築します。When overridden in a derived class, loads the site map information from persistent storage and builds it in memory.

Clear() Clear() Clear() Clear()

StaticSiteMapProvider が状態の一部として追跡する子および親サイト マップ ノードのコレクションに含まれているすべての要素を削除します。Removes all elements in the collections of child and parent site map nodes that the StaticSiteMapProvider tracks as part of its state.

Equals(Object) Equals(Object) Equals(Object) Equals(Object)

指定したオブジェクトが、現在のオブジェクトと等しいかどうかを判断します。Determines whether the specified object is equal to the current object.

(Inherited from Object)
FindSiteMapNode(HttpContext) FindSiteMapNode(HttpContext) FindSiteMapNode(HttpContext) FindSiteMapNode(HttpContext)

現在要求されているページを表す SiteMapNode オブジェクトを、指定した HttpContext オブジェクトを使用して取得します。Retrieves a SiteMapNode object that represents the currently requested page using the specified HttpContext object.

(Inherited from SiteMapProvider)
FindSiteMapNode(String) FindSiteMapNode(String) FindSiteMapNode(String) FindSiteMapNode(String)

指定した URL のページを表す SiteMapNode オブジェクトを取得します。Retrieves a SiteMapNode object that represents the page at the specified URL.

FindSiteMapNodeFromKey(String) FindSiteMapNodeFromKey(String) FindSiteMapNodeFromKey(String) FindSiteMapNodeFromKey(String)

指定したキーに基づいて SiteMapNode オブジェクトを取得します。Retrieves a SiteMapNode object based on a specified key.

GetChildNodes(SiteMapNode) GetChildNodes(SiteMapNode) GetChildNodes(SiteMapNode) GetChildNodes(SiteMapNode)

特定の SiteMapNode オブジェクトの子サイト マップ ノードを取得します。Retrieves the child site map nodes of a specific SiteMapNode object.

GetCurrentNodeAndHintAncestorNodes(Int32) GetCurrentNodeAndHintAncestorNodes(Int32) GetCurrentNodeAndHintAncestorNodes(Int32) GetCurrentNodeAndHintAncestorNodes(Int32)

現在要求されているページのノードを取得し、現在のページの親および先祖のサイト マップ ノードをフェッチする際、サイト マップ プロバイダーに最適化された検索メソッドを提供します。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.

(Inherited from SiteMapProvider)
GetCurrentNodeAndHintNeighborhoodNodes(Int32, Int32) GetCurrentNodeAndHintNeighborhoodNodes(Int32, Int32) GetCurrentNodeAndHintNeighborhoodNodes(Int32, Int32) GetCurrentNodeAndHintNeighborhoodNodes(Int32, Int32)

現在要求されているページのノードを検索し、現在のノードの近くのサイト マップ ノードをフェッチする際、サイト マップ プロバイダーに最適化された検索メソッドを提供します。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.

(Inherited from SiteMapProvider)
GetHashCode() GetHashCode() GetHashCode() GetHashCode()

既定のハッシュ関数として機能します。Serves as the default hash function.

(Inherited from Object)
GetParentNode(SiteMapNode) GetParentNode(SiteMapNode) GetParentNode(SiteMapNode) GetParentNode(SiteMapNode)

特定の SiteMapNode オブジェクトの親サイト マップ ノードを取得します。Retrieves the parent site map node of a specific SiteMapNode object.

GetParentNodeRelativeToCurrentNodeAndHintDownFromParent(Int32, Int32) GetParentNodeRelativeToCurrentNodeAndHintDownFromParent(Int32, Int32) GetParentNodeRelativeToCurrentNodeAndHintDownFromParent(Int32, Int32) GetParentNodeRelativeToCurrentNodeAndHintDownFromParent(Int32, Int32)

現在要求されているページの先祖ノードを取得し、その先祖の子孫ノードをフェッチする際、サイト マップ プロバイダーに最適化された検索メソッドを提供します。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.

(Inherited from SiteMapProvider)
GetParentNodeRelativeToNodeAndHintDownFromParent(SiteMapNode, Int32, Int32) GetParentNodeRelativeToNodeAndHintDownFromParent(SiteMapNode, Int32, Int32) GetParentNodeRelativeToNodeAndHintDownFromParent(SiteMapNode, Int32, Int32) GetParentNodeRelativeToNodeAndHintDownFromParent(SiteMapNode, Int32, Int32)

指定した SiteMapNode オブジェクトの先祖ノードを取得して、その子ノードをフェッチする際に、サイト マップ プロバイダーに最適化された検索メソッドを提供します。Provides an optimized lookup method for site map providers when retrieving an ancestor node for the specified SiteMapNode object and fetching its child nodes.

(Inherited from SiteMapProvider)
GetRootNodeCore() GetRootNodeCore() GetRootNodeCore() GetRootNodeCore()

派生クラスでオーバーライドされた場合は、現在のプロバイダーによって現在管理されている全ノードのルート ノードを取得します。When overridden in a derived class, retrieves the root node of all the nodes that are currently managed by the current provider.

(Inherited from SiteMapProvider)
GetType() GetType() GetType() GetType()

現在のインスタンスの Type を取得します。Gets the Type of the current instance.

(Inherited from Object)
HintAncestorNodes(SiteMapNode, Int32) HintAncestorNodes(SiteMapNode, Int32) HintAncestorNodes(SiteMapNode, Int32) HintAncestorNodes(SiteMapNode, Int32)

サイト マップ プロバイダーがオーバーライドして、指定した SiteMapNode オブジェクトの相対として 1 つ以上のレベルの親ノードと先祖ノードの最適化された取得を実行できるメソッドを提供します。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 SiteMapNode object.

(Inherited from SiteMapProvider)
HintNeighborhoodNodes(SiteMapNode, Int32, Int32) HintNeighborhoodNodes(SiteMapNode, Int32, Int32) HintNeighborhoodNodes(SiteMapNode, Int32, Int32) HintNeighborhoodNodes(SiteMapNode, Int32, Int32)

サイト マップ プロバイダーがオーバーライドして、指定したノードの近くで見つかったノードの最適化された取得を実行できるメソッドを提供します。Provides a method that site map providers can override to perform an optimized retrieval of nodes found in the proximity of the specified node.

(Inherited from SiteMapProvider)
Initialize(String, NameValueCollection) Initialize(String, NameValueCollection) Initialize(String, NameValueCollection) Initialize(String, NameValueCollection)

SiteMapProvider 実装を初期化します。対象には、サイト マップ データを永続ストレージから読み込むために必要なリソースがすべて含まれます。Initializes the SiteMapProvider implementation, including any resources that are needed to load site map data from persistent storage.

(Inherited from SiteMapProvider)
IsAccessibleToUser(HttpContext, SiteMapNode) IsAccessibleToUser(HttpContext, SiteMapNode) IsAccessibleToUser(HttpContext, SiteMapNode) IsAccessibleToUser(HttpContext, SiteMapNode)

指定した SiteMapNode オブジェクトを、指定したコンテキストでユーザーが表示できるかどうかを示すブール値を取得します。Retrieves a Boolean value indicating whether the specified SiteMapNode object can be viewed by the user in the specified context.

(Inherited from SiteMapProvider)
MemberwiseClone() MemberwiseClone() MemberwiseClone() MemberwiseClone()

現在の Object の簡易コピーを作成します。Creates a shallow copy of the current Object.

(Inherited from Object)
RemoveNode(SiteMapNode) RemoveNode(SiteMapNode) RemoveNode(SiteMapNode) RemoveNode(SiteMapNode)

指定された SiteMapNode オブジェクトを、サイト マップ プロバイダーによる追跡対象のすべてのサイト マップ ノード コレクションから削除します。Removes the specified SiteMapNode object from all site map node collections that are tracked by the site map provider.

ResolveSiteMapNode(HttpContext) ResolveSiteMapNode(HttpContext) ResolveSiteMapNode(HttpContext) ResolveSiteMapNode(HttpContext)

SiteMapResolve イベントを発生させます。Raises the SiteMapResolve event.

(Inherited from SiteMapProvider)
ToString() ToString() ToString() ToString()

現在のオブジェクトを表す文字列を返します。Returns a string that represents the current object.

(Inherited from Object)

プロパティ

CurrentNode CurrentNode CurrentNode CurrentNode

現在要求されているページを表す SiteMapNode オブジェクトを取得します。Gets the SiteMapNode object that represents the currently requested page.

(Inherited from SiteMapProvider)
Description Description Description Description

管理ツールまたは他のユーザー インターフェイス (UI) での表示に適した、簡単でわかりやすい説明を取得します。Gets a brief, friendly description suitable for display in administrative tools or other user interfaces (UIs).

(Inherited from ProviderBase)
EnableLocalization EnableLocalization EnableLocalization EnableLocalization

SiteMapNode 属性のローカライズされた値が返されるかどうかを示すブール値を取得または設定します。Gets or sets a Boolean value indicating whether localized values of SiteMapNode attributes are returned.

(Inherited from SiteMapProvider)
Name Name Name Name

構成時にプロバイダーを参照するために使用される表示名を取得します。Gets the friendly name used to refer to the provider during configuration.

(Inherited from ProviderBase)
ParentProvider ParentProvider ParentProvider ParentProvider

現在のプロバイダーの親 SiteMapProvider オブジェクトを取得または設定します。Gets or sets the parent SiteMapProvider object of the current provider.

(Inherited from SiteMapProvider)
ResourceKey ResourceKey ResourceKey ResourceKey

SiteMapNode 属性のローカライズに使用するリソース キーを取得または設定します。Get or sets the resource key that is used for localizing SiteMapNode attributes.

(Inherited from SiteMapProvider)
RootNode RootNode RootNode RootNode

現在のプロバイダーが示すサイト マップ データのルート SiteMapNode オブジェクトを取得します。Gets the root SiteMapNode object of the site map data that the current provider represents.

(Inherited from SiteMapProvider)
RootProvider RootProvider RootProvider RootProvider

現在のプロバイダー階層のルート SiteMapProvider オブジェクトを取得します。Gets the root SiteMapProvider object in the current provider hierarchy.

(Inherited from SiteMapProvider)
SecurityTrimmingEnabled SecurityTrimmingEnabled SecurityTrimmingEnabled SecurityTrimmingEnabled

サイト マップ プロバイダーがユーザーのロールに基づいてサイト マップ ノードをフィルター処理するかどうかを示すブール値を取得します。Gets a Boolean value indicating whether a site map provider filters site map nodes based on a user's role.

(Inherited from SiteMapProvider)

イベント

SiteMapResolve SiteMapResolve SiteMapResolve SiteMapResolve

CurrentNode プロパティが呼び出されると発生します。Occurs when the CurrentNode property is called.

(Inherited from SiteMapProvider)

適用対象

こちらもご覧ください