sql - Plans du site ASP.NET

Translate

Quelqu'un a-t-il de l'expérience dans la créationASP.NET basé sur SQLfournisseurs de plan de site?

J'ai le fichier XML par défautweb.sitemapfonctionne correctement avec mon menu etSiteMapPathcontrô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 associer les autorisations de consultation des pages à la normeASP.NETsystème d'adhésion aussi.

This question and all comments follow the "Attribution Required."

Toutes les réponses

Translate

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

AddNodepanique avec des liens vers des sites externes dans votre menu (www.google.com, etc.)

Voici ma solution dansBuildSiteMap():

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);
}

SQLDependencyla mise en cache est cool, mais si vous ne voulez pas faire un voyage dans la base de données à chaque fois que votre menu se charge (pour vérifier si la dépendance a changé) et que vos menus ne changent pas très souvent, alors pourquoi ne pas utiliserHttpRuntime.Cacheau lieu?

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;
    }
}
La source