2010-04-19 5 views
0
<siteMapNode roles="*"> 

    <siteMapNode url="~/Default.aspx" title=" Main" description="Main" roles="*"/> 

    <siteMapNode url="~/Items.aspx" title=" Adv" description="Adv" roles="Administrator"/> 

.... 

tout utilisateur peut voir la page Adv. C'est un problème et une question: pourquoi et comment se cacher des sitenodes de rôle. Mais si je le fais HttpContext.Current.User.IsInRole("Administrator") il me montre si l'utilisateur dans le rôle d'administrateur ou non.Le contrôle SiteMap basé sur les rôles utilisateur ne fonctionne pas

config web:

<authentication mode="Forms"/> 
<membership defaultProvider="SqlProvider" userIsOnlineTimeWindow="20"> 
    <providers> 
    <add connectionStringName="FlowWebSQL" enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="true" passwordFormat="Hashed" applicationName="/" name="SqlProvider" type="System.Web.Security.SqlMembershipProvider"/> 
    </providers> 
</membership> 
<roleManager enabled="true" defaultProvider="SqlProvider"> 
    <providers> 
    <add connectionStringName="FlowWebSQL" name="SqlProvider" type="System.Web.Security.SqlRoleProvider" /> 
    </providers> 
</roleManager> 

Répondre

1

Vous devez utiliser la balise location dans web.config.

<location path ="Items.aspx" > 

    <system.web> 

    <authorization> 

     <allow roles ="Administrator"/> 
     <deny users="*"/> 
    </authorization> 

    </system.web> 

</location> 

Voir ci-dessous pour l'étape par étape rôle sur mesure mise en œuvre
http://urenjoy.blogspot.com/2010/03/custom-role-provider-sitemap-navigation.html

+0

hm ... ressemblant à ce que je ne peux pas utiliser System.Web dans App_Code de WebApplication – Cynede

+0

aussi ... Je n'ai pas de dossiers différents pour chaque rôle Si je faire des dossiers certains dossiers mu st être capable de jouer certains rôles (pas un rôle - un dossier) – Cynede

+0

mais ... le code de web.config a vraiment aidé! Je vous remercie. – Cynede

2

case Activer la sécurité parage de sécurité est parage pas activé par défaut, et il ne peut pas être activé par programme; il ne peut être défini dans le fichier web.config

http://msdn.microsoft.com/en-us/library/ms178428.aspx

+0

... aha problème est ici: Cynede

+0

Source de données de la carte du site demande un seul élément – Cynede

Questions connexes