Mapas de sitio de ASP.NET
Actualización: noviembre 2007
Para utilizar la exploración del sitio de ASP.NET, debe describir la estructura del sitio para que la API y los controles de exploración del sitio puedan mostrar la estructura del sitio correctamente. De forma predeterminada, el sistema de exploración del sitio utiliza un archivo XML que contiene la jerarquía del mismo. Sin embargo, también puede configurar el sistema de exploración del sitio para que utilice orígenes de datos alternativos. Para obtener más información, vea Proveedores de exploración del sitio de ASP.NET.
Archivo Web.sitemap
La manera más simple de crear un mapa del sitio es crear un archivo XML denominado Web.sitemap que organice las páginas del sitio jerárquicamente. El proveedor del mapa del sitio carga de forma predeterminada este mapa del sitio en ASP.NET.
El archivo Web.sitemap debe estar ubicado en el directorio raíz de la aplicación, aunque puede hacer referencia a otros proveedores o archivos de mapas de sitio situados en otros directorios siempre que esos archivos estén en la misma aplicación. Para obtener más información, vea Cómo: Configurar varios mapas de sitio y proveedores de mapas de sitio.
Nota de seguridad: |
---|
La implementación de un proveedor de mapas de sitio personalizado que almacene los datos del mapa del sitio en un archivo con una extensión de nombre de archivo que no sea .sitemap es un riesgo de seguridad en potencia. De forma predeterminada, ASP.NET se configura para impedir que los archivos con extensiones de nombre de archivo conocidas, como .sitemap, las pueda descargar un cliente. Para ayudar a proteger sus datos, sitúe todos los archivos de datos del mapa del sitio personalizado que tengan una extensión de nombre de archivo que no sea .sitemap en la carpeta App_Data. Para obtener más información, vea Proteger la exploración del sitio de ASP.NET. |
En el ejemplo de código siguiente se muestra cómo el mapa del sitio podría buscar un sitio sencillo que tuviera tres niveles de profundidad. El atributo url puede empezar con el acceso directo "~/", que indica la raíz de la aplicación. Para obtener más información, vea Rutas de acceso a sitios 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>
En el archivo Web.sitemap, agregue un elemento siteMapNode en cada página del sitio Web. A continuación, puede crear la jerarquía anidando los elementos siteMapNode. En el ejemplo anterior, las páginas de Hardware y Software son elementos secundarios del elemento siteMapNode de Products. El atributo title define el texto que se utiliza normalmente como texto del vínculo y el atributo description actúa como documentación y como información sobre herramientas en el control SiteMapPath.
Nota: |
---|
En un mapa del sitio, es posible hacer referencias a direcciones URL que son ajenas a la aplicación Web. ASP.NET no puede comprobar el acceso a una dirección URL ajena a la aplicación. Por tanto, si habilita la reducción de seguridad, el nodo del mapa del sitio no estará visible a menos que el atributo roles se establezca en un asterisco (*), lo que permitirá a todos los clientes ver el nodo de mapa del sitio sin tener que comprobar primero el acceso a la dirección URL. Para obtener más información, vea Reducción de seguridad del mapa del sitio de ASP.NET. |
Mapas de sitio válidos
Un archivo de mapa de sitio válido contiene sólo un elemento siteMapNode que está ubicado inmediatamente debajo del elemento siteMap. Sin embargo, el elemento siteMapNode del primer nivel puede contener cualquier número de elementos siteMapNode secundarios. Además, un archivo de mapa de sitio válido no debe tener direcciones URL duplicadas, aunque los atributos url pueden estar vacíos. Los proveedores distintos del proveedor de mapas de sitio predeterminado de ASP.NET no podrían tener esta restricción.
Configurar varios mapas de sitio
Puede utilizar varios archivos o proveedores de mapas de sitio para describir la estructura de exploración de un sitio Web completo. Por ejemplo, el archivo Web.sitemap raíz puede estar vinculado a un archivo de mapa de sitio secundario si hace referencia a este archivo en un elemento siteMapNode utilizando el código siguiente.
<siteMapNode siteMapFile="MySiteMap.sitemap"/>
Para obtener más información, vea Cómo: Configurar varios mapas de sitio y proveedores de mapas de sitio.
Adaptar los mapas del sitio
Puede adaptar las propiedades siguientes en un mapa del sitio.
Propiedades personalizadas contenidas en la colección Attributes
Para adaptar la propiedad Url o para definir estructuras de exploración diferentes en función de la configuración regional de un usuario, necesita definir diferentes archivos de mapas de sitio para cada configuración regional y cambiar mediante programación a la propiedad Provider adecuada en tiempo de ejecución. Para obtener más información, vea Cómo: Modificar los nodos de mapa de sitio en memoria mediante programación. Para obtener más información sobre cómo adaptar los mapas del sitio, vea Cómo: Buscar datos de mapas de sitio.
Vea también
Tareas
Cómo: Modificar los nodos de mapa de sitio en memoria mediante programación
Cómo: Configurar varios mapas de sitio y proveedores de mapas de sitio
Cómo: Buscar datos de mapas de sitio
Conceptos
Información general sobre la exploración del sitio de ASP.NET
Proveedores de exploración del sitio de ASP.NET
Proteger la exploración del sitio de ASP.NET
Otros recursos
Seguridad de aplicaciones ASP.NET en entornos alojados en host