bonjour,

J'utilise pour mon site un objet sitemap, et un custom role provider dans lequel je gère moi-même un ou deux rôles, selon l'utilisateur.


voici mon fichier web.sitemap :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
 
 
<?xml version="1.0" encoding="utf-8" ?>
<siteMap xmlns="http://schemas.microsoft.com/AspNet/SiteMap-File-1.0" enableLocalization="true" >
    <siteMapNode url="Default.aspx" title="Menu"  description="" >
      <siteMapNode url="" title="$resources: local, menu_vehicle" roles="VEH_VIEW">
        <siteMapNode url="Main.aspx" title="$resources: local, menu_vehiclelist" roles="VEH_VIEW" />
        <siteMapNode url="~/VehicleCreation.aspx?Mode=insert" title="$resources: local, menu_createvehicle"  roles="VEH_MODIFY" />
        <siteMapNode url="~/VehicleModification.aspx?Mode=edit" title="$resources: local, menu_modifyvehicle"  roles="VEH_MODIFY" />
        <siteMapNode url="~/VehicleModification.aspx?Mode=del" title="$resources: local, menu_removevehicle" roles="VEH_MODIFY"/>
      </siteMapNode>
 
      <siteMapNode title="$resources: local, menu_equipement" url="" description="" roles="VEH_VIEW" >
        <siteMapNode title="$resources: local, menu_equipmentlist" url="~/EquipmentList.aspx" roles="VEH_VIEW" />
        <siteMapNode title="$resources: local, menu_attacheequipement" url="~/AttachEquipment.aspx" roles="VEH_MODIFY"/>
        <siteMapNode title="$resources: local, menu_detachequipement" url="~/DetachEquipment.aspx" roles="VEH_MODIFY"/>
      </siteMapNode>
 
      <siteMapNode url="~/Parameters.aspx" title="$resources: local, menu_parameters" description="" roles="VEH_VIEW">
      </siteMapNode>
    </siteMapNode>
</siteMap>

et du point de vue des autorisation, le web.config ne contient que :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 
    <authorization>
      <deny users="?"/>
    </authorization>
Résultat :

- Si on ne met aucun droit, le noeud "menu_parameters" reste affiché.

- Si on ne met que le droit "VEH_VIEW", tout l'arbre est affiché, y compris les sous-menus déroulants, alors que la plupart devraient être cachés, en l'absence du rôle "VEH_MODIFY".


Je n'arrive pas à comprendre la logique du système, est-ce un bug de la génération de l'arbre (je ne pense pas vu que personne n'a signalé un tel comportement sur les différents forums que j'ai pu voir, ou un système de droits extérieur (les autorisations de IIS ?) vient-il parasiter le système ?


Question subsidaire : Y a t-il un moyen de m'affranchir du droit "VEH_VIEW" pour autoriser par défaut toutes les noeuds actuellement liés à "VEH_VIEW" ? Quel syntaxe est la bonne ?

-roles="*"
-roles=""
-pas d'attribut "roles" ?

Merci d'avance...