Vous êtes sur la page 1sur 0

Microsoft France Tutorial Dcouverte de ASP.NET 2.

0
< Atelier 3 />
Ajouter la navigation
Microsoft Ajouter la navigation Atelier 3
Automne 2005 Tutorial Dcouverte de ASP.NET 2.0 Page 2 sur 23
Sommaire
1 INTRODUCTION .................................................................................................................................................... 3
1.1 CONTEXTE FONCTIONNEL.................................................................................................................................... 3
1.2 CONTEXTE TECHNIQUE........................................................................................................................................ 4
2 CONSTRUIRE UN PLAN DE SITE....................................................................................................................... 5
3 DEFINIR UNE SOURCE DE DONNEES.............................................................................................................. 9
4 DEFINIR DES MENUS ......................................................................................................................................... 11
4.1 LE CONTROLE TREEVIEW.................................................................................................................................. 11
4.2 LE CONTROLE MENU ......................................................................................................................................... 13
4.3 LE CONTROLE SITEMAPPATH............................................................................................................................ 16
5 IMPLEMENTER LA SECURITE DANS LES MENUS .................................................................................... 20
6 POUR ALLER PLUS LOIN.............................................................................................................................. 22
6.1 PROGRAMMER LES MENUS................................................................................................................................. 22
6.2 UTILISER DES URLS LOGIQUES ........................................................................................................................... 22
6.3 IMPLEMENTER UN MENU MULTILINGUE ............................................................................................................. 22
7 RENDEZ-VOUS DANS LE PROCHAIN ATELIER...................................................................................... 23
Microsoft Ajouter la navigation Atelier 3
Automne 2005 Tutorial Dcouverte de ASP.NET 2.0 Page 3 sur 23
1 Introduction
Cet atelier sinscrit dans le cadre du tutorial de dcouverte de ASP.NET 2.0 dont lobjectif est la construction
dune application web pas pas.
Les exercices de latelier 3 illustrent la mise en uvre des lments de navigation dune application web,
tels que les menus.
1.1 Contexte fonctionnel
Rappel du contexte fonctionnel du Tutorial de dcouverte de ASP.NET 2.0
Lobjectif du tutorial est de construire pas pas un site web de petites annonces (type bonnes affaires)
proposant des services de :
dpt dune annonce en ligne.
consultation de toutes les annonces publies.
gestion du compte des utilisateurs du site qui souhaitent slectionner des annonces et
revenir rgulirement sur la consultation de leur slection.
Ladresse de ce site fictif serait http://www.affairessansrisque.fr .
Pour ceux qui nous rejoindraient maintenant
o en tions-nous la fin de latelier prcdent ?
Latelier 2, Travailler la prsentation graphique, sest concentr sur la mise en uvre de la charte
graphique de lapplication web laide des thmes. Les pages de lapplication ressemblent maintenant
ceci :
Rcuprez les fichiers de solution de latelier prcdent dans le rpertoire ..\Atelier 3\Dmarrage.
Contexte fonctionnel de latelier 3 dans le cadre du Tutorial
Lessentiel des options de menu de lapplication web AffairesSansRisque concerne les services disponibles
autour des annonces :
Service de consultation des annonces en ligne. Celles-ci sont classes par rgion. Lutilisateur peut
galement retrouver dans quels journaux est publie chaque annonce.
Service de diffusion dune annonce. Ce service nest accessible quaux utilisateurs authentifis.
Service dadministration des annonces. Ce service nest accessible qu ladministrateur du site.
Lapplication web fournit trois systmes de navigation :
Un menu sur le ct gauche de lcran qui permet de naviguer dans les services du site.
Le mme menu dans le pied de page, qui permet davoir un lien sur tous les services la fin de la
lecture dune page (sans avoir besoin de refaire dfiler la page jusqu son sommet pour refaire
apparatre le menu gauche).
Un chemin dans la bannire du site qui permet de savoir tout moment o lon se trouve dans la
hirarchie des pages du site.
Microsoft Ajouter la navigation Atelier 3
Automne 2005 Tutorial Dcouverte de ASP.NET 2.0 Page 4 sur 23
1.2 Contexte technique
ASP.NET 2.0 fournit un nouveau service charg de simplifier la gestion de la navigation dans les
applications web et de faciliter la maintenance de celle-ci en cas de modification. Ce service, bas sur le
fournisseur par dfaut XmlSiteMapProvider permet de lier les contrles serveur de menu (type TreeView,
Menu) une source de donnes au format Xml appele fichier de plan de site, contenant ladresses des
diffrentes pages du site.
A la fin de cet atelier, vous saurez comment :
Construire la cartographie de lapplication web et tablir un plan de site.
Dfinir une source de donnes reprsentant le plan du site.
Ajouter les contrles de menu lis au plan de site.
La solution de cet atelier est disponible dans le rpertoire ..\Atelier 3\Solution.
Les fichiers utiles, auxquels font rfrence les exercices sont disponibles dans le rpertoire ..Atelier
3\Fichiers utiles.
Indicateur du
chemin de la
page en cours
dans la
hirarchie du
menu.
Menu de type
treeview avec
exploration
dynamique des
sous niveaux de
menu.
Barre de menu horizontale dans le pied de page
Microsoft Ajouter la navigation Atelier 3
Automne 2005 Tutorial Dcouverte de ASP.NET 2.0 Page 5 sur 23
2 Construire un plan de site
Dans cet exercice, vous allez apprendre :
- Construire un plan de site.
Objectif
Lobjectif de cet exercice est dtablir une cartographie du site dcrivant ladresse de toutes les pages du site
ainsi que le titre de menu associ et de le stocker au format Xml dans un fichier de type Plan de site.
Contexte fonctionnel
Nous vous proposons de construire un plan de site sur la base du menu suivant :
Plan Url de la page associe
Accueil Default.aspx
Consulter nos annonces ConsulterAnnoncesParRegion.aspx
Consulter les publications ConsulterAnnoncesJournaux.aspx
Diffuser une annonce DiffuserAnnonce.aspx
Administrer les annonces AdministrerAnnonces.aspx
Qui sommes-nous ? QuiSommesNous.aspx
Droulement de lexercice :
1. Ouvrez le projet prcdent ralis lors de latelier 2 :
Menu Fichier > Ouvrir le site web.
Retrouvez le chemin du rpertoire AffairesSansRisque que vous avez utilis lors de
latelier 2 ou, si vous navez pas fait latelier prcdent, rcuprez le projet de solution dans
le rpertoire : ..\Atelier 3\Dmarrage\AffairesSansRisque.
2. Crez un fichier de type plan de site :
Faites un clic droit sur la racine de votre projet dans lExplorateur de solutions > Ajouter un
nouvel lment
Slectionnez Plan de site et gardez le nom par dfaut :Web.sitemap.
Microsoft Ajouter la navigation Atelier 3
Automne 2005 Tutorial Dcouverte de ASP.NET 2.0 Page 6 sur 23
Cliquez sur Ajouter.
Un plan de site est un fichier XML qui dcrit la collection de nuds du menu de votre application. Il doit
y avoir un nud principal incluant des sous nuds, eux-mmes pouvant contenir dautres nuds.
Chaque nud est dfini par une adresse url pointant vers la page web correspondante, le titre qui sera
affich dans le contrle de menu et une description (optionnelle). Chaque url est unique dans le plan de site.
Le fournisseur associ au service de navigation lit le plan XML et le charge en mmoire dans un objet
SiteMap, directement accessible par programmation (cf. 5 Pour aller plus loin)
3. Modifiez le plan de site vide en ajoutant les informations des diffrentes pages de lapplication :
Saisissez les nuds suivants partir du modle de plan gnr :
Url Titre Description Niveau
Default.aspx Accueil Espace Accueil 0
ConsulterAnnoncesParRegion.aspx Consulter nos
annonces
Liste de toutes nos annonces classes
par rgion
1
ConsulterAnnoncesJournaux.aspx Consulter les
publications
Liste des publications de nos annonces 2
DiffuserAnnonce.aspx Diffuser une annonce Publier une annonce en ligne 1
AdministrerAnnonces.aspx Administrer les
annonces
Administration des annonces 1
QuiSommesNous.aspx Qui sommes-nous ? En savoir plus sur AffairesSansRisque 1
Votre plan de site est maintenant prt :
Microsoft Ajouter la navigation Atelier 3
Automne 2005 Tutorial Dcouverte de ASP.NET 2.0 Page 7 sur 23
Lintrt dun tel fichier rside dans la simplicit de maintenance de lapplication en cas de
modification de la structure de navigation. Seul le fichier de plan est mis jour. La liaison (que vous allez
mettre en place dans les exercices suivants de cet atelier au travers dune source de donnes) des contrles
daffichage avec ce fichier de plan est automatique
De plus, la structure XML de linformation tant hirarchique, il devient simple de lier cette source
dinformation tout type de contrle daffichage hirarchique, tel que le TreeView.
4. Crez les diffrentes pages de lapplication web correspondantes aux nuds :
Faites un clic droit sur la racine du projet dans lExplorateur de solutions > Ajouter un
nouvel lment > modle Formulaire web.
Slectionnez Placer le code dans un fichier distinct et Slectionner la page matre puis
MasterPage.master dans la fentre Slectionner une page matre.
Nommez les pages respectivement :
Url
ConsulterAnnoncesParRegion.aspx
ConsulterAnnoncesJournaux.aspx
DiffuserAnnonce.aspx
AdministrerAnnonces.aspx

Vous obtenez :
Microsoft Ajouter la navigation Atelier 3
Automne 2005 Tutorial Dcouverte de ASP.NET 2.0 Page 8 sur 23
Pensez donner un titre toutes vos pages en renseignant lattribut Title dans la directive de page
@ Page. Il apparatra dans la barre de titre dInternet Explorer.

Note :
Microsoft Ajouter la navigation Atelier 3
Automne 2005 Tutorial Dcouverte de ASP.NET 2.0 Page 9 sur 23
3 Dfinir une source de donnes
Dans cet exercice, vous allez apprendre :
- Utiliser le contrle SiteMapDataSource reprsentant un plan de site.
Objectif
Lobjectif de cet exercice est de construire sur la base du plan de site tabli au 2 une source de donnes
que vous pourrez par la suite lier aux diffrents contrles daffichage de menu.
Contexte fonctionnel
Pour rappel, la navigation est une fonctionnalit commune lensemble de lapplication web, cest pourquoi
elle est mise en uvre sur la page matre MasterPage.master.
La source de donnes doit reprsenter le plan de site tabli prcdemment. En revanche, on ne souhaite
pas voir apparatre dans les menus le premier nud du plan, cest--dire le lien vers la page daccueil.
Droulement de lexercice :
1. Ouvrez la page matre en mode Source :
Double cliquez sur MasterPage.master lExplorateur de solutions.
2. Ajoutez un contrle SiteMapDataSource dans la zone Services des annonces proposs par le
site juste aprs le titre en style <h2> :
Faites un glisser dplacer de la Bote outils > rubrique Donnes > contrle
SiteMapDataSource sur la page.

Vous remarquez que ce contrle est dans la rubrique Donnes au mme titre que les contrles daccs
aux donnes. Vous dcouvrirez dautres contrles source de donnes similaires lors de latelier 4 daccs
aux donnes.
Vous obtenez :
3. Paramtrez False la proprit ShowStartingNode du contrle pour dmarrer la lecture du plan au
premier niveau des nuds lintrieur du nud racine :
Basculez en mode Design.
Slectionnez le contrle SiteMapDataSource > clic droit > Proprits.
Changez la valeur de ShowStartingNode : False.
Microsoft Ajouter la navigation Atelier 3
Automne 2005 Tutorial Dcouverte de ASP.NET 2.0 Page 10 sur 23
Il est possible daccder aux proprits du contrle directement depuis le mode Source : positionnez
le curseur lintrieur de la balise de dbut et de fin du contrle (celles-ci apparaissent alors en gras) puis
faites F4 pour faire apparatre la fentre de proprits.
Vous constatez que le lien entre le fichier de plan Web.sitemap et le contrle de source de donnes est
implicite. En ralit, cela vient du fournisseur par dfaut XmlSiteMapProvider du service de navigation qui
travaille avec le fichier de nom Web.sitemap.
Vous pourriez videmment redfinir votre propre fournisseur, travaillant par exemple avec une base de
donnes SQL Server pour stocker linformation de navigation (cf. 5 Pour aller plus loin) ; Vous pouvez
galement renommer le fichier plan de site diffremment.

Note :
Microsoft Ajouter la navigation Atelier 3
Automne 2005 Tutorial Dcouverte de ASP.NET 2.0 Page 11 sur 23
4 Dfinir des menus
Dans cet exercice, vous allez apprendre :
- Utiliser le contrle serveur de type TreeView.
- Utiliser le contrle serveur de type Menu.
- Utiliser le contrle serveur de type SiteMapPath.
Objectif
Lobjectif de cet exercice est dajouter les contrles de navigation lapplication lis la source de donnes
tablie prcdemment.
Contexte fonctionnel
Vous allez mettre en place trois zones de navigation comme suit :
Pour linstant, vous allez crer des pages vides pour toutes les options de menu cres. Vous dfinirez du
contenu pour ces pages loccasion des prochains ateliers du tutorial (notamment latelier 4 sur laccs aux
donnes).
Nous en profiterons pour refondre lgrement le fond dcran du pied de page pour davantage faire ressortir
le menu.
4.1 Le contrle TreeView
Cest le contrle qui va nous permettre dafficher le menu sur la barre de navigation gauche vers
lensemble des pages du site :
Indicateur du
chemin de la
page en cours
dans la
hirarchie du
menu.
Menu de type
treeview avec
exploration
dynamique des
sous niveaux de
menu.
Barre de menu horizontale dans le pied de page
Microsoft Ajouter la navigation Atelier 3
Automne 2005 Tutorial Dcouverte de ASP.NET 2.0 Page 12 sur 23
Droulement de lexercice :
1. Ouvrez la page MasterPage.master en mode Source :
Double cliquez la page MasterPage.master depuis lExplorateur de solutions.
2. Ajoutez un contrle TreeView la suite du contrle de source de donnes SiteMapDataSource
dans la partie Services des annonces proposs :
Faites un glisser dplacer de la Bote outils > rubrique Navigation > contrle TreeView
sur la page.
3. Basculez en mode Design pour afficher la balise active du contrle.
4. Choisissez la source de donnes SiteMapDataSource1 dfinie au 3.
Notez galement les options :
- Modifier les Databindings TreeNode qui permet de personnaliser les liaisons du contrle avec les
nuds de la source de donnes.
- Actualiser le schma pour raffrachir le schma associ la source de donnes lorsque celle-ci a
chang.
- Afficher les lignes pour faire apparatre des lignes dans le menu.
5. Sauvegardez la page MasterPage.master.
6. Excutez la page Default.aspx pour observer le contrle de navigation.
7. Rajoutez la dfinition suivante du contrle TreeView dans votre fichier dapparence de contrles de
faon amliorer la reprsentation du menu :
Microsoft Ajouter la navigation Atelier 3
Automne 2005 Tutorial Dcouverte de ASP.NET 2.0 Page 13 sur 23
Dans le fichier Default.skin :
<asp:TreeView CssClass="treeview"
runat="server"
ExpandDepth="0"
ExpandImageUrl="Images/signeplus.gif"
CollapseImageUrl="Images/signemoins.gif"
NoExpandImageUrl="Images/bullet-1.gif">
</asp:TreeView>
Le contrle fait rfrence la classe treeview de la feuille de style Default.css pour dfinir les marges
et la hauteur des lignes.
Utiliser les attributs ExpandImageUrl et CollapseImageUrl du contrle TreeView pour afficher des images
de votre choix lorsquun menu contient des sous menus : et . Lattribut NoExpandImageUrl donne
limage affiche pour toutes les options de menus nayant pas de sous niveau.
Enfin lattribut ExpandDepth permet de contrler la profondeur de laffichage des nuds dans la hirarchie
au lancement du menu. Avec la valeur 0, on obtient la Figure 1. Avec une valeur 1, le sous-menu
Consulter les publications est dj ouvert (Figure 2).
8. Sauvegardez le fichier dapparence de contrles.
9. Relancez lexcution de la page Default.aspx pour observer les changements :
Figure 1 Figure 2
Pour rappel, le menu racine Accueil napparat pas car vous avez indiqu au contrle source de
donnes SiteMapDataSource1 que vous ne souhaitiez pas en tenir compte (proprit
ShowStartingNode false).
Note :
4.2 Le contrle Menu
Cest le contrle qui va nous permettre dafficher le mme menu dans le pied de page :
(dans la feuille de style)
Microsoft Ajouter la navigation Atelier 3
Automne 2005 Tutorial Dcouverte de ASP.NET 2.0 Page 14 sur 23
Droulement de lexercice :
1. Ouvrez la page MasterPage.master en mode Source :
Double cliquez la page MasterPage.master depuis lExplorateur de solutions.
2. Ajoutez un contrle Menu juste au dessus du contrle literal ltlPiedDePage dans la partie Zone :
Pied de page :
Faites un glisser dplacer de la Bote outils > rubrique Navigation > contrle Menu sur la
page.
3. Basculez en mode Design pour afficher la balise active du contrle.
4. Choisissez la source de donnes SiteMapDataSource1 dfinie au 3.
Si vous basculez la page en mode Source, notez que le contrle a maintenant lattribut DataSourceID
renseign :
Un menu contient une collection dItems. Ceux-ci sont soient statiques, cest--dire affichs au
lancement du menu, soit dynamiques, cest--dire affichs lorsque lutilisateur passe la souris sur le menu
parent correspondant. Du coup, vous avez deux jeux de proprits de style, un pour les lments statiques
et un autre pour les lments dynamiques.
5. Sauvegardez la page MasterPage.master.
6. Excutez la page Default.aspx pour observer le contrle de navigation.
7. Rajoutez la dfinition suivante du contrle Menu dans votre fichier dapparence de contrles de
faon amliorer la reprsentation du menu :
Pied de page
Microsoft Ajouter la navigation Atelier 3
Automne 2005 Tutorial Dcouverte de ASP.NET 2.0 Page 15 sur 23
Dans le fichier Default.skin :
<asp:Menu CssClass="menu"
StaticPopOutImageUrl="Images/bullet-3.gif"
orientation="horizontal" runat="server" >
<StaticMenuItemStyle ItemSpacing="1em"/>
</asp:Menu>
Le contrle fait rfrence la classe menu de la feuille de style Default.css pour dfinir la marge du
bord bas et afficher les titres en majuscules.
Lattribut StaticPopOutImageUrl dfinit limage affiche droite de loption de menu lorsquelle contient
des sous menus.
Enfin lattribut Orientation contrle lorientation du menu, ici en bas de page, donc horizontale.
Notez llment driv de la classe Style, StaticMenuItemStyle, pour dfinir le style des lments de menu.
Lattribut ItemSpacing dtermine lespacement entre les options de menu.
Vous pourriez utiliser galement la mise en forme automatique propose en mode Design dans le
menu de la balise active du contrle. Cette option propose plusieurs apparences de contrle prdfinies.
8. Sauvegardez le fichier dapparence de contrles.
9. Modifiez galement la feuille de style Default.css pour ajouter notamment un fond dcran la
classe footer associe au pied de page :
.footer
{
background-image: url(images/footer.gif);
margin-left: auto;
margin-right: auto;
margin-top:0.4em;
width: 760px;
text-align: center;
font-size: 9px;
}
10. Sauvegardez la feuille de style.
11. Relancez lexcution de la page Default.aspx pour observer les changements :
(dans la feuille de style)
Microsoft Ajouter la navigation Atelier 3
Automne 2005 Tutorial Dcouverte de ASP.NET 2.0 Page 16 sur 23
Pour rappel, le menu racine Accueil napparat pas car vous avez indiqu au contrle source de
donnes SiteMapDataSource1 que vous ne souhaitiez pas en tenir compte (proprit
ShowStartingNode false).

Note :
4.3 Le contrle SiteMapPath
Cest le contrle qui donne le chemin de la page en cours dans la bannire des pages. Par exemple ici vous
tes dans la page Consulter les publications :
Droulement de lexercice :
1. Ouvrez la page MasterPage.master en mode Source :
2. Ajoutez un contrle SiteMapPath lintrieur de la balise <div> de classe nav :
Faites un glisser dplacer de la Bote outils > rubrique Navigation > contrle
SiteMapPath sur la page.
3. Sauvegardez la page MasterPage.master.
4. Excutez la page Default.aspx pour observer le contrle de navigation. Cliquez sur le menu
Consultez nos annonces pour observer le chemin de la page correspondante donn par le
contrle.
5. Cliquez sur le lien Accueil dans le chemin pour revenir la page Default.aspx.
Attention, le chemin affich ne correspond pas la suite des clics raliss par lutilisateur. Il ralise
un vrai calcul systmatiquement du chemin de la page en cours sans tenir compte du cheminement de
lutilisateur pour se rendre sur la page.
Pour tester ce fonctionnement, cliquez dans le menu sur la page Consulter nos annonces puis sur
Consulter les publications. Dans la barre dadresse de IE, saisissez ladresse de la page Default.aspx
pour vous y rendre directement.
Microsoft Ajouter la navigation Atelier 3
Automne 2005 Tutorial Dcouverte de ASP.NET 2.0 Page 17 sur 23
Le contrle SiteMapPath sait parfaitement o vous tes :
6. Rajoutez la dfinition suivante du contrle SiteMapPath dans votre fichier dapparence de contrles
de faon amliorer la reprsentation de celui-ci :
Dans le fichier Default.skin :
<asp:SiteMapPath runat="server">
<PathSeparatorStyle Font-Bold="True" ForeColor="White" />
<CurrentNodeStyle ForeColor="#003063" />
<NodeStyle Font-Bold="True" ForeColor="White" />
<RootNodeStyle Font-Bold="True" ForeColor="White" />
</asp:SiteMapPath>
Notez les lments drivs de la classe Style, PathSeparatorStyle, CurrentNodeStyle, NodeStyle et
RootNodeStyle, pour dfinir le style des diffrentes parties du contrle.
7. Modifiez galement le sparateur dans le chemin affich :
Affichez MasterPage.master en mode Design.
Cliquez la balise active du contrle SiteMapPath1.
Slectionnez loption Modifier les modles.
Dans la liste droulante, positionnez vous sur le modle correspondant au dessin du
sparateur de menu : PathSeparatorTemplate.
Faites un glisser dplacer dun contrle serveur Image depuis la rubrique Standard de la
Bote outils sur le modle :
Faites un clic droit sur limage > Proprits pour afficher la fentre de proprits de limage.
Cliquez sur de la proprit ImageUrl.
Slectionnez bullet-2.gif dans le thme Default.
Microsoft Ajouter la navigation Atelier 3
Automne 2005 Tutorial Dcouverte de ASP.NET 2.0 Page 18 sur 23
Dans le menu de la balise active du contrle SiteMapPath1, slectionnez Terminer la
modification du modle :
8. Basculez en mode source et observez la nouvelle reprsentation du contrle serveur incluant le
modle du sparateur :
9. Sauvegardez la page MasterPage.master.
10. Relancez lexcution de la page Default.aspx, puis cliquez sur le menu Consultez nos annonces >
Consultez les publications pour observer les changements :
Faites un clic droit sur la page dans Internet Explorer puis slectionnez Afficher le source. Vous
remarquez dans les zones de classe footer et page que les contrles TreeView et Menu ont gnr une
structure HTML en tableau (balises <table><tr><td>) et non des <div>Dommage mais vous trouverez des
versions de ces contrles rcrites dans ce sens par la communaut ASP.NET sur le net.

Page en cours
Microsoft Ajouter la navigation Atelier 3
Automne 2005 Tutorial Dcouverte de ASP.NET 2.0 Page 19 sur 23
Note :
Microsoft Ajouter la navigation Atelier 3
Automne 2005 Tutorial Dcouverte de ASP.NET 2.0 Page 20 sur 23
5 Implmenter la scurit dans les menus
Dans cet exercice, vous allez apprendre :
- Activer la fonctionnalit security trimming du fournisseur de navigation XmlSiteMapProvider.
Objectif
Lobjectif de cet exercice est dactiver la fonctionnalit de scurit dans les menus. Le fournisseur de
navigation (XmlSiteMapProvider) peut en effet filtrer les lments de menus (siteMapNode) afficher en
fonction de rles utilisateurs et des autorisations mises en place sur le site. Nous verrons comment
mettre en uvre des rgles dautorisation et comment crer des rles dans lAtelier 5 (Scuriser lapplication
web).
Contexte fonctionnel
La scurit de lapplication sera mise en place dans un atelier ultrieur. En revanche vous allez prparer le
fournisseur de navigation de faon activer la fonctionnalit de scurit dans les menus.
Deux menus seront cachs en fonction du contexte de scurit :
Diffuser une annonce : napparatra que pour un utilisateur authentifi sur le site. En effet une annonce est
rattache un utilisateur connu par lapplication.
Administrer les annonces : ce menu ne sera accessible que pour les utilisateurs ayant un rle
dadministrateurs du site.
Vue utilisateur anonyme Vue utilisateur authentifi Vue administrateurs
Droulement de lexercice :
1. Ouvrez le fichier de configuration de lapplication web.config.
2. Rajoutez la balise suivante lintrieur de <system.web> :
<siteMap>
<providers>
<remove name="AspNetXmlSiteMapProvider"/>
<add name="AspNetXmlSiteMapProvider" type="System.Web.XmlSiteMapProvider"
securityTrimmingEnabled="true" siteMapFile="Web.sitemap"/>
</providers>
</siteMap>
Pour activer la fonctionnalit pour le fournisseur AspNetXmlSiteMapProvider, vous supprimez la
dfinition de celui-ci avec la balise <remove> puis vous la rajoutez avec la balise <add> en prcisant que
vous souhaitez activer la fonctionnalit de scurit dans lattribut securityTrimmingEnabled.
Une alternative serait denregistrer le fournisseur sous un autre nom (vous vitez ainsi la balise <remove>)
et de dfinir celui-ci comme le nouveau fournisseur par dfaut pour le service via lattribut defaultProvider
sur la balise <siteMap>.
Microsoft Ajouter la navigation Atelier 3
Automne 2005 Tutorial Dcouverte de ASP.NET 2.0 Page 21 sur 23
Notez lattribut siteMapFile qui vous permettrait de changer le nom par dfaut du fichier de plan de
site Web.sitemap en indiquant le nom de votre choix.
3. Sauvegardez le fichier de configuration.
Le fournisseur de navigation ainsi paramtr va raliser maintenant un contrle de scurit pour
chacun des nuds quil trouve dans le fichier de plan Web.sitemap. Il se base sur les rles auxquels
appartient lutilisateur en cours et les rgles dautorisation mises en place sur le site.
Dans latelier traitant de la scurit de lapplication web, nous verrons comment mettre en uvre cela.
Note :
Microsoft Ajouter la navigation Atelier 3
Automne 2005 Tutorial Dcouverte de ASP.NET 2.0 Page 22 sur 23
6 Pour aller plus loin
6.1 Programmer les menus
Les donnes de navigation du site peuvent tre accessibles par programmation en utilisant la classe
SiteMap. Vous pouvez par exemple retrouver le nud courant avec la proprit CurrentNode et exploiter
ses mthodes.
Autre ide explorer :
Ajoutez une procdure de rponse lvnement SiteMap.Provider.SiteMapResolve pour crer
dynamiquement un nud en mmoire pointant sur une page dont lurl contient un paramtre (une telle page
dont lurl varie, ne peut en effet pas tre place directement dans le plan de site).
6.2 Utiliser des urls logiques
Une alternative lide propose au 6.1 pour une page dont lurl serait variable consiste utiliser la
nouvelle fonctionnalit de mappage de ASP.NET 2.0.
Vous pouvez utiliser la balise <urlMappings> dans le fichier de configuration pour mettre en place des urls
logiques (conviviales pour lutilisateur), mappes sur des urls physiques contenant des paramtres.
Example:
<urlMappings enabled="true">
<add
url="~/Emploi.aspx"
mappedUrl="~/ConsulterAnnonces.aspx?rubrique=emploi" />
<add
url="~/Bricolage.aspx"
mappedUrl="~/ConsulterAnnonces.aspx?rubrique=bricolage" />
</urlMappings>
6.3 Implmenter un menu multilingue
Vous pouvez mettre en uvre trs simplement un fichier de plan de site multilingue en utilisant lattribut
resourceKey des balises <siteMapNode> pour charger dynamiquement les titres de menus partir dun
fichier de ressources.
Microsoft Ajouter la navigation Atelier 3
Automne 2005 Tutorial Dcouverte de ASP.NET 2.0 Page 23 sur 23
7 Rendez-vous dans le prochain atelier
Dans latelier 4, Afficher et manipuler des donnes, vous allez crer des pages qui affichent les donnes
des annonces publies sur le site et une page pour publier de nouvelles annonces. Lobjectif est dapprendre
utiliser les nouveaux contrles daccs et daffichage des donnes de ASP.NET 2.0.

Vous aimerez peut-être aussi