Vă mulțumim pentru susținere

ASP.NET Site Maps

Are cineva experiența de a crea furnizori de site-uri ASP.NET bazate pe SQL ?

Am codul implicit XML web.sitemap care funcționează corect cu comenzile mele din meniu și SiteMapPath , dar am nevoie de o modalitate prin care utilizatorii site-ului meu să creeze și să modifice paginile dinamic.

Trebuie să legalizez permisiunile de vizionare a paginilor în sistemul de membru ASP.NET standard.

0
adăugat editat
Vă rugăm să selectați cel mai bun răspuns, mulțumesc.
adăugat autor mruanova

1 răspunsuri

Versiunea Jeff Prosise din revista MSDN funcționează destul de bine, dar are câteva defecte:

AddNode freaks out with links to external sites on your menu (www.google.com, etc.)

Iată remedierea mea î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 caching is cool, but if you don't want to make a trip to the DB everytime your menu loads (to check to see if the dependency has changed) and your menus don't change very often, then why not use HttpRuntime.Cache instead?

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;
    }
}
0
adăugat