2009-03-19 5 views
0

Ich habe Artikel gelesen und eine Menge Forschung gemacht, aber das ist mein Hintern treten und es sollte einfach sein. Ich hoffe, es ist einfach zu beheben.sitemap trimmen funktioniert nicht

Ich versuche, meine Sitemap basierend auf Rollen zu kürzen, aber die Menüsteuerung ändert sich nie.

Sitemap:

<?xml version="1.0" encoding="utf-8" ?> 
<siteMap xmlns="http://schemas.microsoft.com/AspNet/SiteMap-File-1.0"> 
    <siteMapNode url="#" title="Home" description="Home"> 
     <siteMapNode url="~/default.aspx" title="Dashboard" description="" roles="Administrator, Tech, Basic" /> 
     <siteMapNode url="Referrel" title="Referral" description="" roles="Administrator, Tech, Basic"> 
      <siteMapNode url="referral-new.aspx" title="New" description="" roles="Administrator, Tech" />   
      <siteMapNode url="referrals-all.aspx" title="All" description="" roles="Administrator, Tech, Basic" /> 
     </siteMapNode> 
     <siteMapNode url="~/reports/default.aspx" title="Reports" description="" roles="CEO" /> 
    </siteMapNode> 
</siteMap> 

web.config:

<?xml version="1.0"?> 
<configuration> 
    <configSections> 
    <sectionGroup name="system.web.extensions" type="System.Web.Configuration.SystemWebExtensionsSectionGroup, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"> 
     <sectionGroup name="scripting" type="System.Web.Configuration.ScriptingSectionGroup, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"> 
     <section name="scriptResourceHandler" type="System.Web.Configuration.ScriptingScriptResourceHandlerSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication"/> 
     <sectionGroup name="webServices" type="System.Web.Configuration.ScriptingWebServicesSectionGroup, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"> 
      <section name="jsonSerialization" type="System.Web.Configuration.ScriptingJsonSerializationSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="Everywhere"/> 
      <section name="profileService" type="System.Web.Configuration.ScriptingProfileServiceSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication"/> 
      <section name="authenticationService" type="System.Web.Configuration.ScriptingAuthenticationServiceSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication"/> 
      <section name="roleService" type="System.Web.Configuration.ScriptingRoleServiceSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication"/> 
     </sectionGroup> 
     </sectionGroup> 
    </sectionGroup> 

    </configSections> 

    <appSettings> 

    <add key="ChartImageHandler" value="storage=file;timeout=20;url=~/temp"/> 
    </appSettings> 
    <connectionStrings> 
    <add name="ConnectionString" connectionString="Server=localhost;Database=;User ID=;Password=;" providerName="System.Data.SqlClient"/> 
    </connectionStrings> 
    <system.web> 
    <!-- 
Set compilation debug="true" to insert debugging 
symbols into the compiled page. Because this 
affects performance, set this value to true only 
during development. 
--> 
    <httpRuntime executionTimeout="90" maxRequestLength="20000" useFullyQualifiedRedirectUrl="false" requestLengthDiskThreshold="8192"/> 
    <customErrors mode="Off"/> 
    <compilation debug="true"> 
     <assemblies> 
     <add assembly="System.Core, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/> 
     <add assembly="System.Data.DataSetExtensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/> 
     <add assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/> 
     <add assembly="System.Xml.Linq, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/> 
     <add assembly="System.Design, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/> 
     <add assembly="System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/> 
     <add assembly="System.Web.Extensions.Design, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/> 
     <add assembly="System.Web.DataVisualization, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/> 
     <add assembly="System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/> 
     </assemblies> 
    </compilation> 
    <authentication mode="Forms"> 
     <forms loginUrl="Login.aspx" timeout="20" name="eReferral" requireSSL="false" defaultUrl="default.aspx"/> 
    </authentication> 
    <authorization> 
     <deny users = "?"/> 
    </authorization> 
    <membership> 
     <providers> 
     <clear/> 
     <add name="AspNetSqlMembershipProvider" connectionStringName="ConnectionString" applicationName="/" type="System.Web.Security.SqlMembershipProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/> 
     </providers> 
    </membership> 
    <roleManager enabled="true"> 
     <providers> 
     <clear/> 
     <add name="AspNetSqlRoleProvider" connectionStringName="ConnectionString" applicationName="/" type="System.Web.Security.SqlRoleProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/> 
     </providers> 
    </roleManager> 
    <siteMap defaultProvider="XmlSiteMapProvider" enabled="true"> 
     <providers> 
     <add name="XmlSiteMapProvider" description="Default SiteMap provider." type="System.Web.XmlSiteMapProvider" siteMapFile="web.sitemap" securityTrimmingEnabled="true"/> 
     </providers> 
    </siteMap> 

    <!-- 
The <customErrors> section enables configuration 
of what to do if/when an unhandled error occurs 
during the execution of a request. Specifically, 
it enables developers to configure html error pages 
to be displayed in place of a error stack trace. 

<customErrors mode="RemoteOnly" defaultRedirect="GenericErrorPage.htm"> 
<error statusCode="403" redirect="NoAccess.htm" /> 
<error statusCode="404" redirect="FileNotFound.htm" /> 
</customErrors> 
--> 
    <pages theme="Clean"> 
     <controls> 
     <add tagPrefix="asp" namespace="System.Web.UI" assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/> 
     <add tagPrefix="asp" namespace="System.Web.UI.WebControls" assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/> 
     <add tagPrefix="asp" namespace="System.Web.UI.DataVisualization.Charting" assembly="System.Web.DataVisualization, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/> 
     </controls> 
    </pages> 
    <httpHandlers> 
     <remove path="*.asmx" verb="*"/> 
     <add path="*.asmx" verb="*" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" validate="false"/> 
     <add path="*_AppService.axd" verb="*" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" validate="false"/> 
     <add path="ScriptResource.axd" verb="GET,HEAD" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" validate="false"/> 
     <add path="BarcodeGen.axd" verb="*" type="Neodynamic.WebControls.BarcodeProfessional.BarcodeProfessional, Neodynamic.WebControls.BarcodeProfessional"/> 
     <add path="ChartImg.axd" verb="GET,HEAD" type="System.Web.UI.DataVisualization.Charting.ChartHttpHandler, System.Web.DataVisualization, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" validate="false"/> 
    </httpHandlers> 
    <httpModules> 
     <add name="ScriptModule" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/> 
    </httpModules> 
    </system.web> 

    <!-- This section gives the unauthenticated user access --> 

    <location path="forgot-password.aspx"> 
    <system.web> 
     <authorization> 
     <allow users="*"/> 
     </authorization> 
    </system.web> 
    </location> 


    <!-- Referral Folder --> 
    <location path="referral/referral-new.aspx"> 
    <system.web> 
     <authorization> 
     <allow roles="Tech"/> 
     <deny users="?" /> 
     </authorization> 
    </system.web> 
    </location> 
    <location path="referral/referral-details.aspx"> 
    <system.web> 
     <authorization> 
     <allow roles="Administrator, Basic, Tech, Physician"/> 
     <deny users="?" /> 
     </authorization> 
    </system.web> 
    </location> 
    <location path="referral/referral-new.aspx"> 
    <system.web> 
     <authorization> 
     <allow roles="Administrator, Basic, Tech, Physician"/> 
     <deny users="?" /> 
     </authorization> 
    </system.web> 
    </location> 

    <location path="Reports/default.aspx"> 
    <system.web> 
     <authorization> 
     <allow roles="CEO"/> 
     <deny users="?" /> 
     </authorization> 
    </system.web> 
    </location> 


    <system.codedom> 
    <compilers> 
     <compiler language="c#;cs;csharp" extension=".cs" warningLevel="4" type="Microsoft.CSharp.CSharpCodeProvider, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> 
     <providerOption name="CompilerVersion" value="v3.5"/> 
     <providerOption name="WarnAsError" value="false"/> 
     </compiler> 
    </compilers> 
    </system.codedom> 
    <!-- 
The system.webServer section is required for running ASP.NET AJAX under Internet 
Information Services 7.0. It is not necessary for previous version of IIS. 
--> 
    <system.webServer> 
    <validation validateIntegratedModeConfiguration="false"/> 
    <modules> 
     <remove name="ScriptModule"/> 
     <add name="ScriptModule" preCondition="managedHandler" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/> 
    </modules> 
    <handlers> 
     <remove name="WebServiceHandlerFactory-Integrated"/> 
     <remove name="ScriptHandlerFactory"/> 
     <remove name="ScriptHandlerFactoryAppServices"/> 
     <remove name="ScriptResource"/> 
     <remove name="ChartImageHandler"/> 
     <add name="ScriptHandlerFactory" verb="*" path="*.asmx" preCondition="integratedMode" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/> 
     <add name="ScriptHandlerFactoryAppServices" verb="*" path="*_AppService.axd" preCondition="integratedMode" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/> 
     <add name="ScriptResource" preCondition="integratedMode" verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/> 
     <add name="ChartImageHandler" preCondition="integratedMode" verb="GET,HEAD" path="ChartImg.axd" type="System.Web.UI.DataVisualization.Charting.ChartHttpHandler, System.Web.DataVisualization, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/> 
     <add name="BarcodeGen" path="BarcodeGen.axd" verb="*" type="Neodynamic.WebControls.BarcodeProfessional.BarcodeProfessional, Neodynamic.WebControls.BarcodeProfessional"/> 
    </handlers> 
    </system.webServer> 
    <runtime> 
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> 
     <dependentAssembly> 
     <assemblyIdentity name="System.Web.Extensions" publicKeyToken="31bf3856ad364e35"/> 
     <bindingRedirect oldVersion="1.0.0.0-1.1.0.0" newVersion="3.5.0.0"/> 
     </dependentAssembly> 
     <dependentAssembly> 
     <assemblyIdentity name="System.Web.Extensions.Design" publicKeyToken="31bf3856ad364e35"/> 
     <bindingRedirect oldVersion="1.0.0.0-1.1.0.0" newVersion="3.5.0.0"/> 
     </dependentAssembly> 
    </assemblyBinding> 
    </runtime> 
    <system.net> 
    <settings> 
     <httpWebRequest useUnsafeHeaderParsing="true"/> 
    </settings> 
    </system.net> 
</configuration> 

Was könnte das Problem sein?

+0

sieht zur Verfügung gestellt haben, wie ich – Todd

+0

Formatierung fixiert die Sitemap-Code hinzufügen kann nicht. Genießen! – Cerebrus

+0

danke mann ... wie hast du das gemacht? – Todd

Antwort

1

Warum nicht Sie versuchen, diese auch in der Website Karte setzen:

<?xml version="1.0" encoding="utf-8" ?> 

<siteMapNode url="" title="Secciones" description="" roles="Admin,Users"> 
    <siteMapNode url="~/p_Site/Cursos.aspx" title="Cursos" description="Information" /> 
    <siteMapNode url="~/p_Site/Precios.aspx" title="Prices" description="All the Prices" /> 
    </siteMapNode> 

    <siteMapNode url="" title="Administration" description="" roles="Admin"> 
    <siteMapNode url="~/p_Admin/Alumnos.aspx" title="Debt List"/> 
    <siteMapNode url="~/p_Admin/Pagos.aspx" title="Pay List" description="" /> 
    </siteMapNode> 

</siteMapNode> 

ich angegeben haben die erlaubten Rollen zu jedem Teil des site.map, und das plus der Web.Config Eintrag, den du hast, sollte funktionieren;)

Beste Grüße !!!

C

+0

Ich habe eine abgespeckte Version der Sitemap ausprobiert ... nur 2 Knoten für Rollen sind kein Mitglied und sie tauchen auf. – Todd

+0

Ich löschte die Sitemap und begann von Grund auf neu und änderte den Standard-Provisionierungsnamen in 'Standard' und es funktioniert! – Todd

0

hatte ich das gleiche Problem, Lösung: In meinem Fall ich äußere siteMapNode Rollen nicht :)

<siteMapNode roles ="admin"> this is outer 
<siteMapNode roles ="admin" /> inner 
<siteMapNode roles ="admin"/> inner 
</siteMapNode>