如何:实现 ASP.NET 站点地图提供程序

更新:2007 年 11 月

本主题说明如何构建 ASP.NET 站点地图提供程序以及配置 ASP.NET 应用程序以使用站点地图提供程序。

下表列出与之相应的主题,其中包括用 Visual Basic 和 C# 编写的两个示例站点地图提供程序的代码。一个示例提供程序使用用于 ODBC 的 .NET Framework 数据提供程序连接到 ODBC 数据源。另一个示例使用 Microsoft Access 数据库作为其数据源。

文本站点地图提供程序示例

演示一个完整的基于文本的站点地图提供程序。

Access 站点地图提供程序示例

演示一个完整的基于 Access 的站点地图提供程序。

生成站点地图提供程序

  • 将源代码放入应用程序的 App_Code 目录中。

    ms178432.alert_note(zh-cn,VS.90).gif说明:

    如果应用程序的 App_Code 目录中已经有源代码,则您必须添加使用与目录中现有代码相同的语言编写的站点地图提供程序版本。

    当请求您的应用程序时,ASP.NET 将对该提供程序进行编译。有关更多信息,请参见 ASP.NET 网站中的共享代码文件夹

    --或者--

    也可以将站点地图提供程序作为库进行编译,并将其放入 Web 应用程序的 Bin 目录中,或对其进行强命名并放入全局程序集缓存 (GAC) 中。例如,下面的命令演示如何使用命令行编译器编译示例站点地图提供程序。

    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 应用程序配置为使用站点地图提供程序,将提供程序添加到 Web.config 文件中。

  2. 添加使用站点地图提供程序的控件。改变 Web.config 文件并编译提供程序之后,提供程序会将导航数据加载到内存中的 SiteMap 类的实例中。现在站点地图基础结构的组件(如 SiteMapPathTreeViewMenu 控件)可以使用导航数据来为用户显示站点地图信息。下面的代码示例在 ASP.NET 页中使用所有这三个控件。

    <%@ 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 应用程序安全性