Mapas do Site do ASP.NET

Para usar navegação de site do ASP.NET, você deve descrever a estrutura do site para que a API de navegação de site e os controles de navegação do site possam expor a estrutura do site corretamente.Por padrão, o sistema de navegação do site usa um arquivo XML que contém a hierarquia do site.Entretanto, você também pode configurar o sistema de navegação do site para usar fontes de dados alternativas.Para obter mais informações, consulte Provedores de Navegação em Sites ASP.NET.

O Arquivo Web.sitemap

A maneira mais simples de criar um mapa do site consiste em criar um arquivo XML denominado Web.sitemap que organiza as páginas no site hierarquicamente.Este mapa do site é capturado automaticamente pelo provedor de mapa de site padrão do ASP.NET.

O arquivo Web.sitemap deve ser localizado no diretório raiz do aplicativo, embora ele possa referenciar outros provedores de mapa do site, ou outros arquivos de mapa do site em outros diretórios, contanto que esses arquivos estejam no mesmo aplicativo.Para obter mais informações, consulte Como: configurar Multiple Site Maps and Site Map Providers.

Observação de segurança:

A implementação de um provedor de mapa do site personalizado que armazene dados de mapa do site em um arquivo com uma extensão de nome de arquivo diferente de .sitemap é um risco de segurança em potencial.Por padrão, o ASP.NET é configurado para proteger arquivos com extensões de nome de arquivo conhecidas— como .sitemap — de serem descarregados por um cliente.Para ajudar a proteger seus dados, coloque quaisquer arquivos de dados de mapa do site personalizados que tenham uma extensão de nome de arquivo diferente de .sitemap na pasta App_Data.Para obter mais informações, consulte Tornando navegação em sites do ASP.NET seguro.

O exemplo de código a seguir mostra como a mapa do site deverá ficar para um site simples que vai a três níveis de profundidade.O atributo url pode iniciar com o atalho "~/", que indica a raiz do aplicativo.Para obter mais informações, consulte Caminhos de Site Web do 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>

No arquivo Web.sitemap, adicione um elemento siteMapNode para cada página em seu site.Em seguida você pode criar a hierarquia aninhando os elementos siteMapNode.No exemplo anterior, as páginas para Hardware e Software são elementos filho do elemento siteMapNode Products.O atributo title define o texto que é normalmente usado como texto de link, e o atributo description atua tanto como documentação quanto como uma dica de ferramenta no controle SiteMapPath.

Observação:

Em um mapa de site, você pode consultar URLs que estão fora do seu aplicativo da Web.Acesso a um URL fora do aplicativo não pode ser testado pelo ASP.NET.Portanto, se você ativar o filtragem de segurança, o nó do MAP de site só serão visível a menos que você defina o atributo roles como "*", que permite que todos os clientes para exibir o nó do MAP de site sem primeiro testar acessar a URL.Para obter mais informações, consulte Cortes de segurança em mapas de site no ASP.NET.

Mapas do Site Válidos

Um arquivo de mapa do site válido contém somente um elemento siteMapNode que está localizado imediatamente abaixo do elemento siteMap.Mas o elemento siteMapNode de primeiro nível pode conter qualquer número de elementos siteMapNode filhos.Além disso, um arquivo de mapa do site válido não deve ter URLs duplicados, embora os atributos url possam estar vazios.Provedores que não seja o provedor de mapa do site padrão para ASP.NET podem não ter esta restrição.

Configurando Vários Mapas do Site

Você pode usar mais de um provedor ou arquivo de mapa do site para descrever a estrutura de navegação de um site da Web inteiro.Por exemplo, o arquivo raiz Web.sitemap pode ser vinculado a um arquivo de mapa do site filho, referenciando o arquivo filho em um elemento siteMapNode usando o código a seguir.

<siteMapNode siteMapFile="MySiteMap.sitemap"/>

Para obter mais informações, consulte Como: configurar Multiple Site Maps and Site Map Providers.

Localizing Mapas do Site

Você pode localizar as seguintes propriedades em um mapa do site.

Para localizar a propriedade Url, ou para definir diferentes estruturas de navegação com base na localidade do usuário, você precisa definir arquivos de mapa de site diferentes para cada localidade e programaticamente alternar para o Provider apropriado em tempo de execução.Para obter mais informações, consulte Como: Modificar programaticamente Site Map Nodes in memória.Para obter mais informações sobre como localizar mapas de site, consulte Como: Localizar dados de um MAP de site.

Consulte também

Tarefas

Como: Modificar programaticamente Site Map Nodes in memória

Como: configurar Multiple Site Maps and Site Map Providers

Como: Localizar dados de um MAP de site

Conceitos

Visão geral sobre navegação em sites do ASP.NET

Provedores de Navegação em Sites ASP.NET

Tornando navegação em sites do ASP.NET seguro

Proteção de acesso a dados

Outros recursos

Segurança de aplicativos ASP.NET em ambientes hospedados