IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

ASP.NET Discussion :

Comment faire un web.sitemap dynamique ?


Sujet :

ASP.NET

  1. #1
    Membre confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2007
    Messages
    109
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Conseil

    Informations forums :
    Inscription : Juillet 2007
    Messages : 109
    Par défaut Comment faire un web.sitemap dynamique ?
    Bonjour à tous,

    J'ai actuellement un menu (web.sitemap) statique. Je souhaiterai en fonction de l'utilisateur n'afficher qu'une partie du menu (cacher la partie d'administration pour les "non-admin" etc...

    Je vois beaucoup de site pour "générer" les web.sitemap mais aucun pour le faire de manière dynamique en fonction de l'utilisateur.

    Comment procéder ?
    Merci de votre aide.

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    231
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Juillet 2004
    Messages : 231
    Par défaut
    Moi j'utilise plusieurs .sitemap.
    Et selon le profil de l'utilisateur je charge le sitemap approprié.
    Bon ok, la plupart des menus sont doublés mais je ne savais pas si c'est possible de faire autrement.

    Au final j'ai trouvé ça même très bien, j'ai eu en fin de projet à créer un nouveau profil, ça s'est fait très facilement.

  3. #3
    Membre confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2007
    Messages
    109
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Conseil

    Informations forums :
    Inscription : Juillet 2007
    Messages : 109
    Par défaut
    Je vais tester ceci :

    Deux fichiers sitemap en fonction du user...

  4. #4
    Membre confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2007
    Messages
    109
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Conseil

    Informations forums :
    Inscription : Juillet 2007
    Messages : 109
    Par défaut
    Citation Envoyé par dinbougre Voir le message
    Moi j'utilise plusieurs .sitemap.
    Et selon le profil de l'utilisateur je charge le sitemap approprié.
    Bon ok, la plupart des menus sont doublés mais je ne savais pas si c'est possible de faire autrement.

    Au final j'ai trouvé ça même très bien, j'ai eu en fin de projet à créer un nouveau profil, ça s'est fait très facilement.
    Merci pour ce message qui vient confirmer mes recherches !

  5. #5
    Membre confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2007
    Messages
    109
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Conseil

    Informations forums :
    Inscription : Juillet 2007
    Messages : 109
    Par défaut
    Pourrais tu me montrer le code c# que tu as utilisé ?
    Je ne vois pas où définir le sitemap à utiliser.

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    231
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Juillet 2004
    Messages : 231
    Par défaut
    J'utilise un SiteMapDatasource en DataSource de mon menu.
    Dans mon code behind, je ne fais que mettre à jour le SiteMapProvider de mon SiteMapDataSource

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SiteMapDataSource1.SiteMapProvider = "MySiteMap1";

    Dans mon fichier web.config, tu définis "MySiteMap1"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <siteMap defaultProvider="None" enabled="true">
    	<providers>
    		<add name="MySiteMap1" type="System.Web.XmlSiteMapProvider"
    			siteMapFile="~/Sitemap/MySiteMap1.sitemap" securityTrimmingEnabled="true"/>
    		<add name="MySiteMap2" type="System.Web.XmlSiteMapProvider"
    			siteMapFile="~/Sitemap/MySiteMap2.sitemap" securityTrimmingEnabled="true"/>
    	</providers>
    </siteMap>

  7. #7
    Membre confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2007
    Messages
    109
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Conseil

    Informations forums :
    Inscription : Juillet 2007
    Messages : 109
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    Voici mon fichier de Web.config
    <system.web>
          <siteMap enabled="true">
            <providers>
              <add name="Consultant" type="System.Web.XmlSiteMapProvider"
                siteMapFile="~/Sitemap/CONSULTANT.sitemap" securityTrimmingEnabled="true"/>
              <add name="Manager" type="System.Web.XmlSiteMapProvider"
                siteMapFile="~/Sitemap/MANAGER.sitemap" securityTrimmingEnabled="true"/>
              <add name="Admin" type="System.Web.XmlSiteMapProvider"
                siteMapFile="~/Sitemap/ADMIN.sitemap" securityTrimmingEnabled="true"/>
            </providers>
          </siteMap>
    ...
    J'ai créé un Dossier "Sitemap" à la racine de mon site avec les différents Sitemap CONSULTANT / MANAGER / ADMIN.

    J'ai également supprimé mon fichier Web.sitemap à la racine de mon site.

    Voici l'erreur qui s'affiche maintenant :
    "Le fichier web.sitemap requis par XmlSiteMapProvider n'existe pas."

  8. #8
    Membre confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2007
    Messages
    109
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Conseil

    Informations forums :
    Inscription : Juillet 2007
    Messages : 109
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     if (Session["idroleutilisateur"].ToString() == "3")
                    SiteMapDataSource1.SiteMapProvider = ConfigurationManager.AppSettings["Admin"];
                else if (Session["idroleutilisateur"].ToString() == "2")
                    SiteMapDataSource1.SiteMapProvider = ConfigurationManager.AppSettings["Manager"];
                else if (Session["idroleutilisateur"].ToString() == "1")
                    SiteMapDataSource1.SiteMapProvider = ConfigurationManager.AppSettings["Consultant"];
    Et voici mon code c# au Page_Load de ma masterPage.

  9. #9
    Rédacteur
    Avatar de lutecefalco
    Profil pro
    zadzdzddzdzd
    Inscrit en
    Juillet 2005
    Messages
    5 052
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : zadzdzddzdzd

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 052
    Par défaut
    Tu peux affecter chaque entrée de ton sitemap à un rôle.
    Ainsi, seules les entrées dont le role correspond au role du user seront affichées

  10. #10
    Membre confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2007
    Messages
    109
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Conseil

    Informations forums :
    Inscription : Juillet 2007
    Messages : 109
    Par défaut
    Et comment fait on cela ?

  11. #11
    Rédacteur
    Avatar de lutecefalco
    Profil pro
    zadzdzddzdzd
    Inscrit en
    Juillet 2005
    Messages
    5 052
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : zadzdzddzdzd

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 052
    Par défaut
    T'as cherché au moins avant de poser la question ?

    http://msdn.microsoft.com/fr-fr/library/ms178429.aspx

  12. #12
    Membre confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2007
    Messages
    109
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Conseil

    Informations forums :
    Inscription : Juillet 2007
    Messages : 109
    Par défaut
    Merci à vous deux. J'ai finalement retenu la solution de dinbougre car je n'ai pas du tout utilisé la gestion des roles et utilisateurs de Microsoft.

    Bonne journée et merci encore.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Comment faire de la Programmation Dynamique
    Par seddik_saber dans le forum API standards et tierces
    Réponses: 5
    Dernier message: 14/12/2009, 15h24
  2. comment faire des listes déroulantes dynamiques
    Par sajodia dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 11/12/2008, 15h53
  3. [CS3] comment faire une carte géographique dynamique
    Par ianstone dans le forum Dreamweaver
    Réponses: 1
    Dernier message: 17/03/2008, 16h37
  4. Comment faire un ORDER BY dynamique avec une direction?
    Par Danny Blue dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 25/03/2007, 01h46
  5. Comment faire une Form MDI dynamiquement modale ?
    Par eponette dans le forum Composants VCL
    Réponses: 5
    Dernier message: 30/09/2005, 10h14

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo