Mappe del sito ASP.NET

Aggiornamento: novembre 2007

Per utilizzare il sistema di spostamento all'interno dei siti ASP.NET, è necessario descrivere la struttura del sito in modo che le API e i controlli di spostamento espongano la struttura del sito correttamente. Per impostazione predefinita, il sistema di spostamento all'interno dei siti utilizza un file XML in cui è contenuta la gerarchia del sito, tuttavia il sistema può essere configurato anche per l'utilizzo di origini dati alternative. Per ulteriori informazioni, vedere Provider di esplorazione all'interno dei siti ASP.NET.

File Web.sitemap

Il modo più semplice per creare una mappa del sito prevede la creazione di un file XML denominato Web.sitemap, che organizza le pagine nel sito su base gerarchica. La mappa del sito viene selezionata in modo automatico dal provider predefinito di mappa del sito ASP.NET.

Il file Web.sitemap deve essere memorizzato nella cartella principale dell'applicazione, anche se può fare riferimento ad altri provider di mappa del sito oppure ad altri file di mappa del sito contenuti in directory diverse, purché i file appartengano alla stessa applicazione. Per ulteriori informazioni, vedere Procedura: configurare più mappe del sito e provider di mappa del sito.

Nota sulla sicurezza:

L'implementazione di un provider personalizzato di mappa del sito che archivia i dati della mappa in un file con estensione diversa da sitemap rappresenta una potenziale fonte di rischio per la protezione. Per impostazione predefinita, ASP.NET è configurato per impedire che i client eseguano il download di file con estensioni note, ad esempio sitemap. Per proteggere i dati, memorizzare i file di dati personalizzati della mappa del sito con estensione diversa da sitemap nella cartella App_Data. Per ulteriori informazioni, vedere Protezione del sistema di spostamento all'interno dei siti ASP.NET.

Nel codice di esempio seguente viene illustrata una mappa di sito relativa a un semplice sito su tre livelli. L'attributo url può essere preceduto dai caratteri "~/" che indicano la radice dell'applicazione. Per ulteriori informazioni, vedere Percorsi del sito Web ASP.NET.

<siteMap>
  <siteMapNode title="Home" description="Home" url="~/default.aspx">
    <siteMapNode title="Products" description="Our products"
      url="~/Products.aspx">
      <siteMapNode title="Hardware" description="Hardware choices"
        url="~/Hardware.aspx" />
      <siteMapNode title="Software" description="Software choices"
        url="~/Software.aspx" />
    </siteMapNode>
    <siteMapNode title="Services" description="Services we offer"
        url="~/Services.aspx">
        <siteMapNode title="Training" description="Training classes"
          url="~/Training.aspx" />
        <siteMapNode title="Consulting" description="Consulting services" 
          url="~/Consulting.aspx" />
        <siteMapNode title="Support" description="Supports plans" 
          url="~/Support.aspx" />
    </siteMapNode>
  </siteMapNode>
</siteMap>

Nel file Web.sitemap aggiungere un elemento siteMapNode per ogni pagina contenuta nel sito Web. Sarà quindi possibile creare la struttura gerarchica nidificando gli elementi siteMapNode. Nell'esempio precedente le pagine per Hardware e Software sono elementi figlio dell'elemento siteMapNode di Products. L'attributo title definisce il testo solitamente utilizzato per il collegamento, mentre l'attributo description funge sia da documentazione che da descrizione comando nel controllo SiteMapPath.

Nota:

In una mappa del sito è possibile fare riferimento a URL esterni all'applicazione Web. L'accesso a un URL esterno all'applicazione non può essere verificato da ASP.NET. Pertanto, se si attiva la funzionalità di rimozione della protezione, il nodo della mappa del sito non risulterà visibile, a meno che non si imposti l'attributo su "*", consentendo così a tutti i client di visualizzare il nodo della mappa del sito senza che l'accesso all'URL venga precedentemente verificato. Per ulteriori informazioni, vedere Rimozione della protezione della mappa del sito ASP.NET.

Mappe del sito valide

In un file di mappa del sito valido può essere presente un solo elemento siteMapNode, posizionato immediatamente sotto l'elemento siteMap. Nell'elemento siteMapNode di primo livello tuttavia può essere contenuto un numero qualsiasi di elementi siteMapNode figlio. In un file di mappa del sito valido inoltre non deve essere presente alcun URL duplicato, sebbene gli attributi url possano essere vuoti. Queste restrizioni non sono valide per provider diversi dal provider predefinito di mappa del sito ASP.NET.

Configurazione di più mappe del sito

Per descrivere la struttura di spostamento di un intero sito Web, è possibile utilizzare più file o provider di mappa del sito. Il file Web.sitemap principale ad esempio può essere collegato a un file di mappa del sito figlio in un elemento siteMapNode utilizzando il codice seguente.

<siteMapNode siteMapFile="MySiteMap.sitemap"/>

Per ulteriori informazioni, vedere Procedura: configurare più mappe del sito e provider di mappa del sito.

Localizzazione delle mappe del sito

In una mappa del sito è possibile localizzare le proprietà seguenti.

Per la localizzazione della proprietà Url o per la definizione di diverse strutture di spostamento basate sulle impostazioni internazionali dell'utente, è necessario specificare file di mappa del sito diversi per ogni insieme di impostazioni internazionali e in fase di esecuzione passare alla proprietà Provider appropriata a livello di codice. Per ulteriori informazioni, vedere Procedura: modificare a livello di codice i nodi della mappa del sito in memoria. Per ulteriori informazioni sulla localizzazione delle mappe del sito, vedere Procedura: localizzare i dati della mappa del sito.

Vedere anche

Attività

Procedura: modificare a livello di codice i nodi della mappa del sito in memoria

Procedura: configurare più mappe del sito e provider di mappa del sito

Procedura: localizzare i dati della mappa del sito

Concetti

Cenni preliminari sugli spostamenti all'interno dei siti ASP.NET

Provider di esplorazione all'interno dei siti ASP.NET

Protezione del sistema di spostamento all'interno dei siti ASP.NET

Protezione dell'accesso ai dati

Altre risorse

Protezione delle applicazioni ASP.NET in ambienti host