Gewusst wie: Konfigurieren mehrerer Siteübersichten und Siteübersichtsanbieter

Aktualisiert: November 2007

Die Sitenavigation in ASP.NET erfolgt standardmäßig über eine XML-Datei mit dem Namen Web.sitemap, in der die Hierarchie der Website beschrieben ist. Sie haben jedoch die Möglichkeit, mehr als eine Siteübersichtsdatei oder mehr als einen Siteübersichtsanbieter zu verwenden, um die Navigationsstruktur der gesamten Website zu beschreiben.

Sie könnten beispielsweise eine Hauptsiteübersicht haben, die auf eine untergeordnete Siteübersicht verweist. Die Hauptsiteübersicht könnte folgendermaßen aussehen:

<?xml version="1.0" encoding="utf-8" ?>
<siteMap xmlns="https://schemas.microsoft.com/AspNet/SiteMap-File-1.0" >
  <siteMapNode  title="Home Page"  description="">
    <siteMapNode title="First Level 1"  description="" />
    <siteMapNode  title="First Level 2" description="">
      <siteMapNode  title="Second Level 1" description=""/>
      <siteMapNode  title="Second Level 2" description=""/>
    </siteMapNode>
    <siteMapNode siteMapFile="child.sitemap" />
  </siteMapNode>
</siteMap>

Die untergeordnete Siteübersicht könnte folgendermaßen aussehen:

<?xml version="1.0" encoding="utf-8" ?>
<siteMap xmlns="https://schemas.microsoft.com/AspNet/SiteMap-File-1.0" >
  <siteMapNode  title="Child First Level 1"  description="">
    <siteMapNode title="Child Second Level 1"  description="" />
    <siteMapNode  title="Child Second Level 2"  description="" />
    <siteMapNode  title=""  description="" />
  </siteMapNode>
</siteMap>

Diese beiden Siteübersichten erzeugen das folgende Menü:

Home Page
  First Level 1
  First Level 2
    Second Level 1
    Second Level 2
  Child First Level 1
    Child Second Level 1
    Child Second Level 2

Zur Konfiguration mehrerer Siteübersichten für eine einzige Site, beginnen Sie mit einer Siteübersicht im Stamm der Anwendung. Konfigurieren Sie in der Datei Web.config den Stammanbieter als Standard-Siteübersichtsanbieter. Verknüpfen Sie ihn dann mit untergeordneten Siteübersichten oder Anbietern, indem Sie in einem SiteMapNode-Objekt auf sie verweisen.

So verknüpfen Sie eine übergeordnete Siteübersicht mit einer untergeordneten Siteübersichtsdatei

  • Erstellen Sie in der übergeordneten Siteübersicht an der Stelle der Navigationsstruktur, an der die untergeordnete Siteübersicht angezeigt werden soll, ein SiteMapNode-Objekt.

    Wenn Sie z. B. die standardmäßig eingesetzte XmlSiteMapProvider-Klasse verwenden, fügen Sie an der entsprechenden Stelle in der Datei Web.sitemap den folgenden SiteMapNode ein.

    <siteMapNode siteMapFile="MySiteMap.sitemap" />
    

    Als siteMapFile-Attribut kann Folgendes verwendet werden:

    • Ein anwendungsrelativer Verweis, z. B. ~/MySiteMap.sitemap.

    • Ein virtueller Pfad, z. B. /Customers/MySiteMap.sitemap.

    • Ein Pfadverweis relativ zum Speicherort der aktuellen Siteübersichtsdatei, z. B. Guests/MySiteMap.sitemap.

      Hinweis:

      Geben Sie kein Url, title-Attribut oder description-Attribut für das siteMapNode-Element an, wenn Sie ein siteMapFile-Attribut festlegen.

    Weitere Informationen zum Erstellen einer Siteübersichtsdatei finden Sie unter ASP.NET-Siteübersichten.

So verknüpfen Sie eine übergeordnete Siteübersicht mit einem benutzerdefinierten Siteübersichtsanbieter

  1. Erstellen Sie in der übergeordneten Siteübersicht an der Stelle der Navigationsstruktur, an der die untergeordnete Siteübersicht angezeigt werden soll, ein SiteMapNode-Objekt.

    Wenn Sie z. B. die standardmäßig eingesetzte XmlSiteMapProvider-Klasse verwenden, öffnen Sie die Datei Web.sitemap und fügen an der entsprechenden Stelle der Hierarchie folgenden SiteMapNode ein:

    <siteMapNode provider="SimpleTextSiteMapProvider" />
    
    Hinweis:

    Das provider-Attribut entspricht dem name-Attribut des Anbieters in der Datei Web.config.

  2. Fügen Sie den benutzerdefinierten Siteübersichtsanbieter der Datei Web.config hinzu, indem Sie ein add-Element verwenden.

    Mit dem folgenden Code wird der benutzerdefinierte Anbieter SimpleTextSiteMapProvider hinzugefügt. Die XmlSiteMapProvider-Klasse bleibt dabei der Standard-Siteübersichtsanbieter.

    <configuration>
      <!-- other configuration sections -->
      <system.web>
        <!-- other configuration sections -->
        <siteMap defaultProvider="XmlSiteMapProvider">
          <providers>
            <add
              name="SimpleTextSiteMapProvider"
          type="Samples.AspNet.SimpleTextSiteMapProvider,Samples.AspNet"
              siteMapFile = "siteMap.txt" />
          </providers>
        </siteMap>
      </system.web>
    </configuration>
    

    Weitere Informationen zum Erstellen benutzerdefinierter Siteübersichtsanbieter finden Sie unter Implementieren von ASP.NET-Siteübersichtsanbietern.

Konfigurieren von mehreren Siteübersichten in der Datei Web.config

Indem Sie wie in den obigen Beispielen mehrere Siteübersichten miteinander verknüpfen, können Sie aus mehreren Einzelteilen eine zusammenhängende Siteübersichtsstruktur generieren. Sie können der Datei Web.config auch Verweise auf verschiedene Siteübersichten hinzufügen. Die Siteübersichten erscheinen dann wie unterschiedliche Anbieter. Das ist nützlich, wenn verschiedene Bereiche einer Website unterschiedliche Navigationsstrukturen benötigen.

So konfigurieren Sie mehrere Siteübersichten in der Datei Web.config

  • Suchen Sie in der Datei Web.config den Abschnitt siteMap, und erstellen Sie für jede Siteübersicht ein add-Element.

    Im folgenden Beispiel wird gezeigt, wie zwei Siteübersichten hinzugefügt werden.

    <configuration>
      <!-- other configuration sections -->
      <system.web>
        <!-- other configuration sections -->
        <siteMap defaultProvider="XmlSiteMapProvider">
         <providers>
           <add          name="Company1SiteMap"         type="System.Web.XmlSiteMapProvider"          siteMapFile="~/Company1/Company1.sitemap" />       <add          name="Company2SiteMap"         type="System.Web.XmlSiteMapProvider"          siteMapFile="~/Company2/Company2.sitemap" />
         </providers>
        </siteMap>
      </system.web>
    </configuration>
    

    Mit dieser Konfiguration können die Dateien ~/Company1/Company1.sitemap und ~/Company2/Company2.sitemap mit den Membern der API-Navigation und mit Navigationssteuerelementen wie SiteMapPath, TreeView und Menu verwendet werden. Legen Sie hierzu die betreffende SiteMapProvider-Eigenschaft auf Company1SiteMap oder Company2SiteMap fest.

    Weitere Informationen darüber, wie Sie einer Webseite Navigationssteuerelemente hinzufügen können, finden Sie unter Gewusst wie: Hinzufügen einer einfachen Sitenavigation.

Siehe auch

Aufgaben

Gewusst wie: Hinzufügen einer einfachen Sitenavigation

Konzepte

ASP.NET-Siteübersichten

Übersicht über ASP.NET-Sitenavigationsanbieter

Einschränken der ASP.NET-Siteübersicht aus Sicherheitsgründen

Implementieren von ASP.NET-Siteübersichtsanbietern

Sichern der ASP.NET-Sitenavigation

Sichern des Datenzugriffs

Weitere Ressourcen

ASP.NET-Anwendungssicherheit in Hostumgebungen