Wenn Sie schon einmal an ein unbekanntes Ziel gereist sind, wissen Sie, wie wichtig Karten sind – sie können dazu beitragen, Ihre Reise komfortabler zu gestalten. Das gleiche Prinzip gilt für Websites. Eine Website sollte Besuchern eine einfache, aber flexible Navigationsstruktur bieten, damit sie problemlos zu verschiedenen Teilen der Website navigieren können. ASP.NET 2.0 bietet eine Funktion namens SiteMap, die Ihnen dabei hilft, diese Funktionalität zu erreichen. In diesem Artikel wird erklärt, was Sitemaps sind und wie man eine Website-Navigationsstruktur entwickelt, die sie verwendet.
1. SiteMap
Eine Sitemap ist eine XML-Datei (mit der Erweiterung .sitemap), die das gesamte Navigationslayout Ihrer Website detailliert beschreibt. Sie können Sitemap-Dateien verwenden, die allen Ihren Anforderungen entsprechen.
Ein Beispiel soll helfen, Sitemap-Dateien zu erklären. Abbildung 1 zeigt die Verzeichnisstruktur einer Beispielwebsite.
Abbildung 1: Website-Struktur |
In der Abbildung befinden sich die Startseite (Default.aspx) und die Kontaktseite (contact.aspx) im Stammordner der Website. Es gibt auch zwei Unterordner mit den Namen „Produkte“ und „Dienste“. Unter jedem Unterordner befinden sich zwei Webformulare: entsprechend Product1.aspx und Product2.aspx sowie Service1.aspx und Service2.aspx.
Befolgen Sie nun einfach diese Schritte und Sie können eine Sitemap verwenden, um die Struktur Ihrer Website zu beschreiben:
1. Erstellen Sie eine neue Website mit VS.NET 2005.
2. Klicken Sie mit der rechten Maustaste auf die Website und wählen Sie „Neues Element hinzufügen…“.
3. Wählen Sie im Dialogfeld „Neues Element hinzufügen“ die Option „Sitemap“ aus (siehe Abbildung 2) und nennen Sie sie „Web.sitemap“.
Abbildung 2: Hinzufügen einer neuen Sitemap |
Geben Sie das folgende XML-Markup in die Datei web.sitemap ein:
<?xml version="1.0"kodierung="utf-8" ?> <siteMap xmlns="http://schemas.microsoft.com/AspNet/SiteMap-File-1.0" > <siteMapNode url="default.aspx" title="Home" description="Meine Website"> <siteMapNode url="~/products/default.aspx" title="Products"> <siteMapNode url="~/products/product1.aspx" title="Erstes Produkt" /> <siteMapNode url="~/products/product2.aspx" title="Zweites Produkt" /> </siteMapNode> <siteMapNode url="~/services/default.aspx" title="Services"> <siteMapNode url="~/services/service1.aspx" title="Erster Dienst" /> <siteMapNode url="~/services/service2.aspx" title="Zweiter Dienst" /> </siteMapNode> <siteMapNode url="contact.aspx" title="Kontaktieren Sie uns" /> </siteMapNode> </siteMap> |
Das Stammverzeichnis der Sitemap-Datei ist siteMap. Es enthält einen SiteMapNode-Knoten und kann je nach Struktur Ihrer Website mehrere SiteMapNode-Knoten enthalten.
Dieses siteMapNode-Tag verfügt über vier wichtige Attribute (siehe Tabelle 1).
Der Titel der | Eigenschaftsbeschreibung |
zeigt | den Titel der Seite an. Diese Eigenschaft wird häufig von Navigationssteuerelementen verwendet, um den Titel der URL anzuzeigen. |
URL | zeigt die URL der von diesem Knoten beschriebenen Seite an. |
Beschreibung | gibt eine Beschreibung zu dieser Seite an. Mit dieser Beschreibung können Sie Eingabeaufforderungsinhalte anzeigen. |
Rollen | Mithilfe von Sicherheitseinschränkungen (später erläutert) gibt dieses Attribut die Rollen an, die auf diese Seite zugreifen dürfen. |
Tabelle 1: Wichtige Attribute des <siteMapNode>-Tags
Dies bildet Ihre Sitemap. Jetzt können Sie es für Navigationszwecke verwenden.
2. So verwenden Sie SiteMap
Sie können die im vorherigen Abschnitt erstellte Sitemap-Datei auf drei gängige Arten verwenden:
· Verwendung des SiteMapPath-Steuerelements
· Verwendung der SiteMap-Datenquellensteuerung
· Verwendung der SiteMap-Klasse
Mit dem SiteMapPath-Steuerelement können Sie Breadcrumbs generieren. Abbildung 3 zeigt, was Breadcrumb ist.
Abbildung 3: Breadcrumb-Navigation |
Das SiteMapPath-Steuerelement zeigt verschiedene Navigationsebenen an. Sie können beispielsweise auf die übergeordnete oder Stammebene klicken, um zurück oder zur obersten Ebene zu navigieren. Natürlich können Sie auch die Navigationshierarchie anpassen.
ASP.NET 2.0 verfügt außerdem über eine Reihe guter Navigationssteuerelemente, einschließlich TreeView und Menüs. Mit der SiteMap-Datenquellensteuerung können Sie Sitemap-Dateien an diese Steuerelemente binden.
In manchen Fällen erfüllen die integrierten Navigationssteuerungen möglicherweise nicht Ihre Anforderungen. In diesem Fall können Sie programmgesteuert auf die Sitemap-Datei zugreifen und die verschiedenen siteMapNode-Knoten lesen. Anschließend können Sie mithilfe der Titel- und URL-Eigenschaften des siteMapNode eine benutzerdefinierte Navigationsstruktur generieren.
3. Verwenden Sie das SiteMapPath-Steuerelement
Bevor wir auf die Details eingehen, erstellen wir zunächst die Verzeichnisstruktur und das Webformular, die wir benötigen. Fügen Sie der Website zunächst zwei Ordner hinzu: Produkte und Dienstleistungen. Fügen Sie dann eine neue Masterseite MasterPage.master hinzu. Fügen Sie als Nächstes die in Tabelle 2 gezeigten Webformulare hinzu und stellen Sie sicher, dass Sie beim Hinzufügen die Masterseite für sie festlegen.
Ordner | „Webformularname“ |
Default.aspx | Website-Stammverzeichnis |
Contact.aspx | Website-Stammverzeichnis |
Default.aspx | Produkte |
Product1.aspx | Produkte |
Product2.aspx | Produkte |
Default.aspx | Dienste |
Service1.aspx | Dienste |
Service2.aspx | Dienste |
Tabelle 2: Liste der Webformulare
Öffnen Sie nun die Masterseite, die Sie zuvor hinzugefügt haben. Ziehen Sie ein Label-Steuerelement und ein SiteMapPath-Steuerelement darauf. Setzen Sie dann die Text-Eigenschaft des Labels auf „Welcome!“.
Die folgende Liste zeigt alle Tags auf der MasterPage.master-Seite:
<%@ Master Language="C#" AutoEventWireup="true" CodeFile="MasterPage.master.cs" Inherits="MasterPage" %> <html xmlns="http://www.w3.org/1999/xhtml" > <head runat="server"> <Titel>Unbenannte Seite</Titel> </Kopf> <Körper> <form id="form1" runat="server"> <div> <asp:Label ID="Label1" runat="server" Font-Size="XX-Large" ForeColor="Blue" Text="Willkommen!"></asp:Label><br /> <asp:SiteMapPath ID="SiteMapPath1" runat="server" Font-Names="Verdana" Font-Size="0.8em" PathSeparator=" : "> <PathSeparatorStyle Font-Bold="True" ForeColor="#5D7B9D" /> <CurrentNodeStyle ForeColor="#333333" /> <NodeStyle Font-Bold="True" ForeColor="#7C6F57" /> <RootNodeStyle Font-Bold="True" ForeColor="#5D7B9D" /> </asp:SiteMapPath> <br /> <br /> <asp:contentplaceholder id="ContentPlaceHolder1" runat="server"> </asp:contentplaceholder> </div> </form> </Körper> </html> |
Öffnen Sie nun Default.aspx aus dem Stammordner. Default.aspx sollte wie in Abbildung 4 aussehen.
Abbildung 4: Beispiellauf von „Default.aspx“ |
Um diese Seite zu entwerfen, fügen Sie eine Tabelle mit 4 Zeilen und 1 Spalte hinzu. Ziehen Sie ein Label-Steuerelement in die oberste Zeile und setzen Sie seine Text-Eigenschaft auf „Willkommen auf unserer Website!“. Ziehen Sie dann die drei HyperLink-Steuerelemente auf die verbleibenden Zeilen und legen Sie ihre Text- und NavigateUrl-Eigenschaften fest, wie in Tabelle 3 gezeigt.
HyperLink-ID- | Texteigenschaft | NavigateUrl-Eigenschaft |
HyperLink1 | Produkte | ~/products/default.aspx |
HyperLink2 | Dienste | ~/Services/default.aspx |
HyperLink3 | Kontaktieren Sie uns | ~/contact.aspxTabelle |
3: Festlegen der Eigenschaften von HyperLinks
Die folgende Liste zeigt das vollständige Markup in Default.aspx:
<%@ Page Language="C#" MasterPageFile="~/MasterPage.master" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" Title="Unbenannte Seite" %> <asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server"> <Mitte> <Tabelle> <tr> <td width="60%"> <asp:Label ID="Label1" runat="server" Font-Size="X-Large" Text="Willkommen auf unserer Website!"></asp:Label></td> </tr> <tr> <td width="60%"> <asp:HyperLink ID="HyperLink1" runat="server" Font-Size="X-Large" NavigateUrl="~/Products/Default.aspx">Produkte </asp:HyperLink></td> </tr> <tr> <td width="60%"> <asp:HyperLink ID="HyperLink2" runat="server" Font-Size="X-Large" NavigateUrl="~/Services/Default.aspx">Dienste </asp:HyperLink></td> </tr> <tr> <td width="60%"> <asp:HyperLink ID="HyperLink3" runat="server" Font-Size="X-Large" NavigateUrl="~/Contact.aspx">Kontaktieren Sie uns </asp:HyperLink></td> </tr> </Tabelle> </Mitte> </asp:Content> |
Öffnen Sie nun „Default.aspx“ aus dem Ordner „Produkte“ und entwerfen Sie es wie in Abbildung 5 dargestellt.
Abbildung 5: Standardseite des Produktordners |
Tabelle 4 listet alle in Webformularen verwendeten Hyperlinks auf.
HyperLink-ID- | Texteigenschaft | NavigateUrl-Eigenschaft |
HyperLink1 | Erstes Produkt | ~/products/product1.aspx |
HyperLink2 | Zweites Produkt | ~/products/product2.aspx |
Tabelle 4: Hyperlink-Informationen auf der Standardseite im Ordner „Produkte“.
Entwerfen Sie nach dem gleichen Prinzip „Default.aspx“ aus dem Ordner „Services“. Das Ergebnis ist in Abbildung 6 dargestellt.
Abbildung 6. Standardseite des Ordners „Dienste“. |
Tabelle 5 listet die in Webformularen verwendeten Hyperlinkinformationen auf.
HyperLink-ID- | Texteigenschaft | NavigateUrl-Eigenschaft |
HyperLink1 | Erster Dienst | ~/Services/service1.aspx |
HyperLink2 | Zweiter Dienst | ~/Services/service2.aspx |
Tabelle 5: Hyperlink-Informationen auf der Standardseite im Ordner „Produkte“.
Fügen Sie abschließend jedem anderen Webformular ein Tag hinzu und legen Sie dessen Text-Eigenschaft fest, wie in Tabelle 6 gezeigt.
Textattribut des | Webformularnamens | Label
~/Contact.aspx | Kontaktieren Sie uns |
~/Products/Product1.aspx | Erste Produktdetails |
~/Products/Product2.aspx | Zweite Produktdetails |
~/Services/Service1.aspx | Erste Servicedetails |
~/Services/Service2. aspx | Zweite Servicedetails |
Formular 6: Festlegen der Texteigenschaft des Etiketts aus dem verbleibenden Webformular
Führen Sie nun „Default.aspx“ aus dem Stammordner aus und navigieren Sie zur Seite „Product1.aspx“. Abbildung 7 zeigt eine Beispielausführung des Webformulars.
Abbildung 7: Beispiellauf von Product1.aspx |
Beachten Sie, wie die Titel- und URL-Attribute der web.sitemap-Datei zum Generieren von „Breadcrumbs“ verwendet werden. Beachten Sie außerdem, wie die übergeordnete Seite zusammen mit dem aktuellen Seitentitel angezeigt wird. Versuchen Sie, zu verschiedenen Seiten zu navigieren und das SiteMapPath-Steuerelement zu beobachten.
4. Verwenden Sie die SiteMap-Datenquellenkontrolle
Die Verwendung von Sitemaps ist nicht auf das SiteMapPath-Steuerelement beschränkt. Sie können eine Sitemap auch an ein navigierbares Steuerelement anhängen (z. B. eine TreeView). Im folgenden Beispiel verwenden Sie dieselbe Sitemap-Datei, um die Bindung an ein TreeView-Steuerelement zu implementieren.
Fügen Sie der Website ein neues Webformular SiteMapDataSourceDemo.aspx hinzu. Ziehen Sie dann ein SiteMap-Datenquellensteuerelement (SiteMapDataSource1) und ein TreeView-Steuerelement (TreeView1) auf das Formular. Legen Sie die DataSourceID-Eigenschaft dieses TreeView-Steuerelements auf SiteMapDataSource1 fest. Legen Sie außerdem die ShowLines-Eigenschaft des TreeView-Steuerelements auf true fest. Hier ist das vollständige Markup von der Seite SiteMapDataSourceDemo.aspx:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="SiteMapDataSourceDemo.aspx.cs" Inherits="SiteMapDataSourceDemo" %> <html xmlns="http://www.w3.org/1999/xhtml" > <head runat="server"> <Titel>Unbenannte Seite</Titel> </Kopf> <Körper> <form id="form1" runat="server"> <asp:TreeView ID="TreeView1" runat="server" DataSourceID="SiteMapDataSource1" ShowLines="True"> </asp:TreeView> <asp:SiteMapDataSource ID="SiteMapDataSource1" runat="server" /> </form> </Körper> </html> |
Führen Sie nun das Webformular aus, um zu sehen, wie dieselbe Navigationsstruktur automatisch in der TreeView generiert wird (siehe Abbildung 8).
Abbildung 8: Bindung der Sitemap-Datei an ein TreeView-Steuerelement |
5. Verwenden Sie die SiteMap-Klasse
Die Anzeige von Sitemap-Daten in einem SiteMapPath- oder TreeView-Steuerelement funktioniert hervorragend. Manchmal müssen Sie jedoch möglicherweise eine benutzerdefinierte Generierungslogik entwerfen. Beispielsweise möchten Sie möglicherweise ein benutzerdefiniertes Navigationssteuerelement entwickeln, das sein übergeordnetes Element nur vertikal anzeigt. In diesem Fall müssen Sie programmgesteuert auf die Sitemap-Datei zugreifen. Mit der SiteMap-Klasse können Sie genau dies erreichen.
Dieser SiteMap-Pfad hat zwei wichtige Eigenschaften: RootNode und CurrentNode. Ihre Typen sind alle SiteMapNode und beide ermöglichen es Ihnen, auf den Stammknoten bzw. den aktuellen Knoten der Sitemap zu verweisen. Tabelle 7 listet einige wichtige Eigenschaften der SiteMapNode-Klasse auf.
Eigenschaftsbeschreibung | ChildNodes |
stellt | die Sammlung aller untergeordneten Knoten des aktuellen Knotens dar. |
HasChildNodes | gibt an, ob der Sitemap-Knoten untergeordnete Knoten hat (wahr/falsch). |
Title | gibt den Wert des in der Sitemap-Datei angegebenen Titelattributs zurück. |
URL | gibt in der Sitemap-Datei zurück Der Wert des angegebenen URL-Attributs |
„Beschreibung“ | gibt den Wert des in der Sitemap-Datei angegebenen Beschreibungsattributs zurück. |
„ParentNode“ | gibt die Referenz des übergeordneten Sitemap-Knotens des aktuellen Knotens an. |
Tabelle 7: Einige wichtige Attribute der SiteMapNode-Klasse
Im folgenden Beispiel wird ein SiteMap-Pfad verwendet, um auf einen einzelnen Knoten einer Sitemap-Datei zuzugreifen. Fügen Sie sie dann programmgesteuert einem TreeView-Steuerelement hinzu.
Fügen Sie ein Webformular mit dem Namen SiteMapCustom.aspx hinzu. Ziehen Sie dann ein TreeView-Steuerelement darauf. Fügen Sie den Auflistungscode zum Page_Load-Ereignis dieses Webformulars hinzu:
protected void Page_Load(object sender, EventArgs e) { int count = SiteMap.RootNode.ChildNodes.Count; for (int i = 0; i < count; i++) { SiteMapNode smNode=SiteMap.RootNode.ChildNodes[i]; TreeNode tvNode = new TreeNode(smNode.Title, "", "", smNode.Url, ""); TreeView1.Nodes.Add(tvNode); if (smNode.HasChildNodes) { int childCount=smNode.ChildNodes.Count; for (int j = 0; j < childCount; j++) { SiteMapNode smChildNode = smNode.ChildNodes[j]; TreeNode tvChildNode = new TreeNode(smChildNode.Title, "", "", smChildNode.Url, ""); tvNode.ChildNodes.Add(tvChildNode); } } } } |
Hier erhalten Sie zunächst die Gesamtzahl der untergeordneten Knoten im Wurzelknoten. Anschließend durchlaufen Sie die ChildNodes-Sammlung des Stammknotens. Bei jeder Iteration erstellen Sie eine neue Instanz der TreeNode-Klasse und geben deren Titel und URL in ihrem Konstruktor an. Anschließend fügen Sie diesen TreeNode zur Nodes-Sammlung von TreeView hinzu. Anschließend prüfen Sie, ob der aktuelle SiteMapNode über untergeordnete Knoten verfügt. Wenn dies der Fall ist, durchlaufen Sie es und wiederholen den TreeNode-Erstellungsprozess. Beachten Sie, dass Sie dieses Mal die neuen TreeNodes zur ChildNodes-Sammlung des aktuellen TreeNode-Objekts hinzufügen.
Beachten Sie, dass Sie in der Schleife 2 verwenden, da Sie wissen, dass es nur zwei Verschachtelungsebenen gibt. Um Ihre Logik allgemeiner zu gestalten, können Sie die TreeView mithilfe der Rekursion füllen.
Führen Sie das Webformular aus und Sie sehen wieder etwas Ähnliches wie in Abbildung 8.
6. Verwenden Sie Sicherheitswartung
Websites implementieren häufig ein rollenbasiertes Sicherheitsmodell. Beispielsweise können Sie in Ihrer Anwendung verschiedene Rollen haben, z. B. Systemadministrator, Produkttester und Servicetester. In Situationen wie dieser müssen Sie häufig die Site-Navigationslinks steuern, die den Benutzern angezeigt werden. Wenn der aktuell angemeldete Benutzer beispielsweise die Rolle des Produkttesters innehat, möchten Sie möglicherweise nur Links anzeigen, die sich auf das Produkt beziehen, und alle anderen Links ausblenden. Eine Möglichkeit, mit Rollen umzugehen, ist die manuelle Codierung, allerdings erfordert dies die programmgesteuerte Implementierung der gesamten Autorisierungslogik. Glücklicherweise bieten Sitemap-Dateien und die SiteMap-Datenquellensteuerung zusammen eine Funktion namens Sicherheitsreduzierung, die Ihnen hilft.
Um die Sicherheitsüberarbeitung zu testen, müssen Sie die Mitgliedschafts- und Rollenfunktionen Ihrer Site aktivieren. Öffnen Sie die Datei web.config und fügen Sie die folgenden Tags hinzu:
<Authentifizierungsmodus="Formulare" /> <Autorisierung> <Benutzer verweigern="?"></verweigern> </Autorisierung> |
Hier haben Sie den Authentifizierungsmodus auf Formulare eingestellt. Sie können auch Autorisierungsregeln festlegen, sodass anonyme Benutzer vom Zugriff auf die Website ausgeschlossen werden. Anschließend müssen Sie die Rollenverwaltungsfunktion aktivieren, indem Sie der Datei web.config die folgenden Flags hinzufügen:
<roleManager aktiviert="true" /> |
Wählen Sie dann „WebSite>ASP.NET-Konfiguration“ aus dem VS.NET-Menü aus, um das Website-Verwaltungstool zu öffnen. Verwenden Sie dieses Tool, um zwei Rollen hinzuzufügen: ProductTesters und ServiceTesters (siehe Abbildung 9). Wenn sich ein Benutzer anmeldet, der zur Rolle „ProductTesters“ gehört, möchten Sie nur produktbezogene Links im Navigations-TreeView-Steuerelement anzeigen. Ebenso sollten beim Einchecken eines Benutzers, der zur Rolle „ServiceTesters“ gehört, nur dienstbezogene Links in der Baumansicht angezeigt werden.
Abbildung 9: Hinzufügen von Rollen mithilfe von Website-Verwaltungstools |
Verwenden Sie das Website-Verwaltungstool, um zwei Benutzer mit den Namen Benutzer1 und Benutzer2 zu erstellen. Fügen Sie Benutzer1 zur Rolle „ProductTesters“ und Benutzer2 zur Rolle „ServiceTesters“ hinzu (siehe Abbildung 10).
Abbildung 10: Benutzer mit Website-Verwaltungstools erstellen |
Hinweis: Standardmäßig werden Benutzer- und Rolleninformationen in der ASPNETDB-Datenbank im App_Data-Ordner Ihrer Website gespeichert. Diese Datenbank wird von ASP.NET automatisch erstellt, wenn sie nicht vorhanden ist.
Fügen Sie nun eine neue Sitemap-Datei SecurityTrimming.sitemap zur Website hinzu und geben Sie die folgenden Tags ein:
<?xml version="1.0"kodierung="utf-8" ?> <siteMap xmlns="http://schemas.microsoft.com/AspNet/SiteMap-File-1.0" > <siteMapNode url="default.aspx" title="Home" description="Meine Website"> <siteMapNode title="Products" Roles="ProductTesters"> <siteMapNode url="~/products/product1.aspx" title="Erstes Produkt" /> <siteMapNode url="~/products/product2.aspx" title="Zweites Produkt" /> </siteMapNode> <siteMapNode title="Services" Roles="ServiceTesters"> <siteMapNode url="~/services/service1.aspx" title="Erster Dienst" /> <siteMapNode url="~/services/service2.aspx" title="Zweiter Dienst" /> </siteMapNode> <siteMapNode url="contact.aspx" title="Kontaktieren Sie uns" /> </siteMapNode> </siteMap> |
Der größte Teil des Markups hier ist derselbe wie in der web.sitemap-Datei. Den Produkten und Dienstleistungen wurde jedoch ein wichtiges Attribut hinzugefügt: siteMapNodes:roles. Das Attribut „roles“ gibt die Rollen an, die auf diesen Knoten und seine untergeordneten Knoten zugreifen können. Da mit Produkten verknüpfte Links nur Benutzern angezeigt werden, die der Rolle „ProductTesters“ angehören, legen Sie das Attribut „roles“ des SiteMapNode „Produkte“ auf „ProductTesters“ fest. Der gleichen Logik folgend würden Sie das Rollenattribut von Services siteMapNode auf ServiceTesters festlegen. SiteMapNodes ohne das angegebene Rollenattribut sind für alle Benutzer zugänglich. Beachten Sie außerdem, dass die Knoten „Produkte“ und „Dienste“ keine angegebenen URL-Attribute mehr haben.
Jetzt müssen Sie den Sitemap-Anbieter konfigurieren und die Sicherheitserneuerung aktivieren, damit sich die SiteMap-Datenquellenkontrolle entsprechend Ihren Anforderungen verhalten kann. Fügen Sie der web.config-Datei die folgenden Tags hinzu:
<siteMap defaultProvider="myprovider" aktiviert="true"> <Anbieter> <add name="myprovider" type="System.Web.XmlSiteMapProvider " siteMapFile="SecurityTrimming.sitemap" securityTrimmingEnabled="true" /> </Anbieter> |
Hier fügen Sie den Abschnitt <siteMap> hinzu und geben einen Anbieter an, der auf die Datei SecurityTrimming.sitemap verweist. Beachten Sie, dass das securityTrimmingEnabled-Attribut hier auf „true“ gesetzt ist, um Sicherheitskürzungen zu unterstützen. Nachdem Sie den Abschnitt <siteMap> konfiguriert haben, „übernimmt“ die SiteMap-Datenquellensteuerung diese Einstellungen automatisch aus diesem Abschnitt.
Fügen Sie der Website ein neues Webformular mit dem Namen Login.aspx hinzu. Ziehen Sie dann ein Login-Steuerelement darauf und legen Sie dessen DestinationPageUrl-Eigenschaft auf „~/SiteMapDataSourceDemo.aspx“ fest. Beachten Sie, dass Sie zuvor SiteMapDataSourceDemo.aspx entwickelt haben.
Führen Sie Login.aspx aus (siehe Abbildung 11) und geben Sie die Anmeldeinformationen für Benutzer1 ein.
Abbildung 11: Anmeldeseite |
Nachdem Sie sich erfolgreich angemeldet haben, sollten Sie die in Abbildung 12 dargestellte Baumansicht sehen. Da Benutzer1 zur Rolle „ProductTesters“ gehört, ist der Link zum Dienst ausgeblendet.
Abbildung 12: Sicherheitssanierung verwenden |
7. Zusammenfassung
Eine Sitemap ist eine XML-Datei – sie enthält alle Details der Struktur Ihrer Website. Sie können Sitemap-Dateien verwenden, um Navigationsstrukturen zu generieren. Drei gängige Möglichkeiten zur Verwendung von Sitemap-Dateien sind: Verwendung des SiteMapPath-Steuerelements, Verwendung des SiteMap-Datenquellensteuerelements oder Verwendung der SiteMap-Klasse. Sie können auch eine Funktion namens „Sicherheitsreduzierung“ verwenden, um die rollenbasierte Sicherheit für generierte Navigationslinks zu unterstützen. Zusammen tragen diese Steuerelemente und Klassen dazu bei, eine professionelle Navigationsstruktur für Ihre Website zu erstellen.