Bonjour,

j'utilise les membership pour la gestion des autorisations pour l'accès à mes pages.

Je voudrais faire afficher un menu via mon site.map selon des rôles bien définit :


Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
<siteMapNode title="Gestion administrative" roles="Financial">
      <siteMapNode url="~/Financial/page1.aspx" title="page1" />
      <siteMapNode url="~/Financial/page2.aspx" title="page2" />
    </siteMapNode>
    <siteMapNode title="Description de l'existant" roles="Client">
      <siteMapNode url="~/Client/page1.aspx" title="page1" />
      <siteMapNode url="~/Client/page2.aspx" title="page2" />
    </siteMapNode>

Ensuite, dans ma master page j'ai :

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
23
24
25
26
27
28
29
30
31
32
33
34
35
<asp:SiteMapDataSource ID="SiteMapDataSource1" runat="server" />
                            <asp:Repeater runat="server" ID="menu" DataSourceID="SiteMapDataSource1">
                                <ItemTemplate>
                                    <div class="section" style="width: 295px;">
                                        <asp:HyperLink ID="lnkMenuItem" runat="server" Style="text-decoration: 'underline=none'"
                                            NavigateUrl='<%# Eval("Url") %>'><%# Eval("Title") %></asp:HyperLink>
                                    </div>
                                    <asp:Repeater ID="submenu" runat="server" DataSource="<%#
                         ((SiteMapNode) Container.DataItem).ChildNodes %>">
                                        <HeaderTemplate>
                                        </HeaderTemplate>
                                        <ItemTemplate>
                                            <div>
                                                <asp:HyperLink ID="lnkMenuItem2" style="margin-left:20px" 
                                                runat="server" NavigateUrl='<%#Eval("Url") %>'><%# Eval("Title") %></asp:HyperLink>
                                            </div>
                                            <asp:Repeater ID="submenu" runat="server" DataSource="<%#
                         ((SiteMapNode) Container.DataItem).ChildNodes %>">
                                        <HeaderTemplate>
                                        </HeaderTemplate>
                                        <ItemTemplate>
                                            <div  class="nativebutton" >
                                                <asp:HyperLink ID="lnkMenuItem2" style="text-decoration:'underline=none';"  runat="server" NavigateUrl='<%#Eval("Url") %>'><%# Eval("Title") %></asp:HyperLink>
                                            </div>
                                        </ItemTemplate>
                                        <FooterTemplate>
                                        </FooterTemplate>
                                    </asp:Repeater>
 
                                        </ItemTemplate>
                                        <FooterTemplate>
                                        </FooterTemplate>
                                    </asp:Repeater>
                                </ItemTemplate>
                            </asp:Repeater>
Malheureusement, même si j'ai qu'un seul rôle (financial), le menu client s'affiche. Qu'est-ce que je comprends mal ?

Est-ce que la balise role dans site.map est utile à ce que je souhaite faire et si oui, puis-je l'utiliser ainsi ?

Merci d'avance.