2009-07-29 12 views
0

Ich habe diese Sitemap:ASP.NET Sicherheit Trimmen Problem keine feinkörnige Kontrolle möglich?

<?xml version="1.0" encoding="utf-8" ?> 
<siteMap xmlns="http://schemas.microsoft.com/AspNet/SiteMap-File-1.0"> 
    <siteMapNode> 
    <siteMapNode url="www.google.com" title="Google" roles="*" /> 
    <siteMapNode url="www.zdnet.com" title="Zdnet" roles="NonExistingRole" /> 
    <siteMapNode url="www.microsoft.com" title="Microsoft" roles="*" /> 
    <siteMapNode url="www.bing.com" title="Bing" roles="*" /> 
    </siteMapNode> 
</siteMap> 

ich ein benutzerdefinierten Roleprovider wie diese konfigurierten verwenden (dies funktioniert, wenn ich die GetRolesForUser Methode zum Beispiel nennen):

<authentication mode="Windows"/> 
<roleManager enabled="true" defaultProvider="MyProvider"> 
    <providers> 
     <clear/> 
     <add name="MyProvider" type="CustomProviders.MyTestRoleProvider, CustomProviders, Version=1.0.0.0, Culture=neutral"/> 
    </providers> 
</roleManager> 

<siteMap defaultProvider="XmlSiteMapProvider" enabled="true"> 
    <providers> 
    <clear/> 
    <add name="XmlSiteMapProvider" type="System.Web.XmlSiteMapProvider" siteMapFile="Web.sitemap" securityTrimmingEnabled="true"/> 
    </providers> 
</siteMap> 

Was ich erwarte, ist, dass der Knoten mit Rollen = "NonExistingRoles" würde nicht visualisiert, aber es tut. Wie man dieses Problem löst?

Muss ich auch einschalten?

Antwort

2

es offenbar, weil die Wurzel siteMapNode braucht auch eine Rollen-Attribut gesetzt * wie folgt aus:

<siteMapNode roles="*"> 
Verwandte Themen