Question

Quelqu'un a-t-il de l'expérience dans la création ASP.NET basé sur SQL fournisseurs de plans de site ?

J'ai le fichier XML par défaut web.sitemap fonctionne correctement avec mon menu et Chemin du plan du site contrôles, mais j'aurai besoin d'un moyen pour les utilisateurs de mon site de créer et de modifier des pages de manière dynamique.

Je dois lier les autorisations d'affichage des pages à la norme ASP.NET système d'adhésion également.

Pas de solution correcte

Autres conseils

La version Jeff Prosise du magazine MSDN fonctionne plutôt bien, mais elle présente quelques défauts :

AddNode panique avec les liens vers des sites externes sur votre menu (www.google.com, etc.)

Voici ma solution dans 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 la mise en cache est cool, mais si vous ne voulez pas accéder à la base de données à chaque chargement de votre menu (pour vérifier si la dépendance a changé) et que vos menus ne changent pas très souvent, alors pourquoi ne pas utiliser HttpRuntime.Cache plutôt?

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;
    }
}
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top