Mapas del sitio ASP.NET
Pregunta
¿Alguien tiene experiencia creando? ASP.NET basado en SQL proveedores de mapas del sitio?
Tengo el archivo XML predeterminado web.sitemap
funcionando correctamente con mi Menú y Ruta del mapa del sitio controles, pero necesitaré una forma para que los usuarios de mi sitio creen y modifiquen páginas dinámicamente.
Necesito vincular los permisos de visualización de páginas al estándar ASP.NET
sistema de membresía también.
No hay solución correcta
Otros consejos
La versión Jeff Prosise de la revista MSDN funciona bastante bien, pero tiene algunos defectos:
AddNode
se asusta con enlaces a sitios externos en su menú (www.google.com, etc.)
Aquí está mi solución BuildSiteMap()
:
SiteMapNode node = GetSiteMapNodeFromReader(reader);
string url = node.Url;
if (url.Contains(":"))
{
string garbage = Guid.NewGuid().ToString(); // SiteMapNode needs unique URLs
node.Url = "~/dummy_" + garbage + ".aspx";
AddNode(node, _root);
node.Url = url;
}
else
{
AddNode(node, _root);
}
SQLDependency
El almacenamiento en caché es genial, pero si no desea hacer un viaje a la base de datos cada vez que se carga el menú (para verificar si la dependencia ha cambiado) y sus menús no cambian con mucha frecuencia, entonces ¿por qué no usar? HttpRuntime.Cache
¿en cambio?
public override SiteMapNode RootNode
{
get
{
SiteMapNode temp = (SiteMapNode)HttpRuntime.Cache["SomeKeyName"];
if (temp == null)
{
temp = BuildSiteMap();
HttpRuntime.Cache.Insert("SomeKeyName", temp, null, DateTime.Now.AddHours(1), Cache.NoSlidingExpiration);
}
return temp;
}
}