方法 : ASP.NET のサイト マップ プロバイダを実装する

更新 : 2007 年 11 月

このトピックでは、ASP.NET のサイト マップ プロバイダを構築し、サイト マップ プロバイダを使用できるように ASP.NET アプリケーションを構成する方法について説明します。

関連するトピックを次の表に示します。これらのトピックには、Visual Basic および C# で記述された 2 種類のサイト マップ プロバイダのコード例が含まれています。プロバイダの例の 1 つでは、.NET Framework ODBC 用データ プロバイダを使用して ODBC データ ソースに接続しています。もう 1 つの例では、データ ソースとして Microsoft Access データベースを使用しています。

テキスト サイト マップ プロバイダの例

完全なテキスト ベースのサイト マップ プロバイダを示しています。

Access サイトマップ プロバイダの例

完全な Access ベースのサイト マップ プロバイダを示しています。

サイト マップ プロバイダを構築するには

  • アプリケーションの App_Code ディレクトリにソース コードを配置します。

    ms178432.alert_note(ja-jp,VS.90).gifメモ :

    アプリケーションの App_Code ディレクトリに既にソース コードがある場合は、ディレクトリ内の既存のコードと同じ言語で記述されたサイト マップ プロバイダのバージョンを追加する必要があります。

    プロバイダは、アプリケーションが要求されると ASP.NET によりコンパイルされます。詳細については、「ASP.NET Web サイト内の共有コード フォルダ」を参照してください。

    または

    サイト マップ プロバイダをライブラリとしてコンパイルして Web アプリケーションの Bin ディレクトリに配置するか、または厳密な名前を指定してグローバル アセンブリ キャッシュ (GAC: global assembly cache) に配置します。例として、コマンド ライン コンパイラを使用してサイト マップ プロバイダの例をコンパイルする方法を次のコマンドで示します。

    vbc /out:<example_name>.dll /t:library <example_name>.vb /r:System.Web.dll /r:System.Configuration.dll
    
    csc /out:<example_name>.dll /t:library <example_name>.cs /r:System.Web.dll /r:System.Configuration.dll
    

ASP.NET アプリケーションでサイト マップ プロバイダを使用するには

  1. Web.config ファイルにサイト マップ プロバイダを追加して、プロバイダを使用できるように Web アプリケーションを構成します。

  2. サイト マップ プロバイダを使用するコントロールを追加します。Web.config ファイルを変更し、プロバイダをコンパイルすると、プロバイダがメモリ内の SiteMap クラスのインスタンスにナビゲーション データを読み込みます。これで、SiteMapPath コントロール、TreeView コントロール、Menu コントロールなどのサイト マップ インフラストラクチャのコンポーネントでナビゲーション データを使用して、ユーザーに対してサイト マップ情報を表示できます。ASP.NET ページでこれら 3 つのコントロールすべてを使用するコード例を次に示します。

    <%@ Page Language="VB" %>
    
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    
    <script runat="server">
    
    </script>
    
    <html xmlns="http://www.w3.org/1999/xhtml" >
    <head id="Head1" runat="server">
      <title>Simple Navigation Controls</title>
    </head>
    <body>
      <form id="form1" runat="server">
      <div>
    
      <h2>Using SiteMapPath</h2>
      <asp:SiteMapPath ID="SiteMapPath1" Runat="server">
      </asp:SiteMapPath>
    
    
      <asp:SiteMapDataSource ID="SiteMapDataSource1" Runat="server" />
    
      <h2>Using TreeView</h2>
      <asp:TreeView ID="TreeView1" Runat="Server" DataSourceID="SiteMapDataSource1">
      </asp:TreeView>
    
      <h2>Using Menu</h2>
      <asp:Menu ID="Menu2" Runat="server" DataSourceID="SiteMapDataSource1">
      </asp:Menu>
    
      <h2>Using a Horizontal Menu</h2>
      <asp:Menu ID="Menu1" Runat="server" DataSourceID="SiteMapDataSource1"
        Orientation="Horizontal" 
        StaticDisplayLevels="2" >
      </asp:Menu>
    
      </div>
      </form>
    </body>
    </html>
    
    <%@ Page Language="C#" %>
    
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    
    <script runat="server">
    </script>
    
    <html xmlns="http://www.w3.org/1999/xhtml" >
    <head runat="server">
      <title>Simple Navigation Controls</title>
    </head>
    <body>
      <form id="form1" runat="server">
      <div>
    
      <h2>Using SiteMapPath</h2>
      <asp:SiteMapPath ID="SiteMapPath1" Runat="server">
      </asp:SiteMapPath>
    
    
      <asp:SiteMapDataSource ID="SiteMapDataSource1" Runat="server" />
    
      <h2>Using TreeView</h2>
      <asp:TreeView ID="TreeView1" Runat="Server" DataSourceID="SiteMapDataSource1">
      </asp:TreeView>
    
      <h2>Using Menu</h2>
      <asp:Menu ID="Menu2" Runat="server" DataSourceID="SiteMapDataSource1">
      </asp:Menu>
    
      <h2>Using a Horizontal Menu</h2>
      <asp:Menu ID="Menu1" Runat="server" DataSourceID="SiteMapDataSource1"
        Orientation="Horizontal" 
        StaticDisplayLevels="2" >
      </asp:Menu>
    
      </div>
      </form>
    </body>
    </html>
    

参照

概念

ASP.NET サイトマップ プロバイダの実装

ASP.NET サイト ナビゲーションの概要

ASP.NET のサイト ナビゲーションの保護

データ アクセスのセキュリティ保護

その他の技術情報

ホストされた環境での ASP.NET アプリケーションのセキュリティ