0

Dans mon web.config j'ai configuré un SiteMapProvider avec securityTrimmingEnabled="true" et sur ma page principale est un contrôle asp:Menu lié à un asp:SiteMapDataSource. En outre, j'ai configuré l'accès restreint à toutes les pages dans un sous-dossier "Admin" (en utilisant un autre web.config dans ce sous-dossier).Le découpage de sécurité fonctionne-t-il avec le routage Web Forms?

Si je mets un siteMapNode dans Web.sitemap ...

<siteMapNode url="~/Admin/Default.aspx" title="Administration" description="" > 

... seuls les utilisateurs rôle "Admin" aura l'élément de menu relatif à cette siteMapNode. Donc, cela fonctionne bien et comme prévu.

Maintenant, j'ai défini une route URL dans Global.asax pour cartographier le fichier physique vers une nouvelle URL:

System.Web.Routing.RouteTable.Routes.MapPageRoute("AdminHomeRoute", 
    "Administration/Home", "~/Admin/Default.aspx"); 

Mais quand j'utilise cette route-URL dans le fichier SiteMap ...

<siteMapNode url="Administration/Home" title="Administration" description="" > 

... il semble que le découpage de sécurité ne fonctionne pas: L'élément de menu est visible pour tous les utilisateurs. (L'accès à la page est toujours limité, donc la sélection de l'élément de menu par les utilisateurs non-administrateurs ne navigue pas vers la page restreinte.)

Question: Y a-t-il des paramètres que j'ai manqués jusqu'ici? avec le routage d'URL dans les formulaires Web ASP.NET 4.0? Est-ce que j'ai fait quelque chose de mal? Y a-t-il des solutions de rechange?

Nous vous remercions de votre aide!

Répondre

1

J'ai répondu à cela sur les forums ASP.NET (http://forums.asp.net/t/1563781.aspx), mais la réponse est non. Cependant, vous pouvez personnaliser le fournisseur; voir le code dans le message du forum.

+0

Merci, bonne solution! – Slauma