有没有人有创作经验 基于 SQL 的 ASP.NET 站点地图提供商?

我有默认的 XML 文件 web.sitemap 与我的菜单正常工作并且 站点地图路径 控件,但我需要一种方法让我的网站的用户动态创建和修改页面。

我需要将页面查看权限绑定到标准中 ASP.NET 还有会员制度。

没有正确的解决方案

其他提示

MSDN 杂志的 Jeff Prosise 版本运行得很好,但有一些缺陷:

AddNode 菜单上指向外部网站的链接(www.google.com 等)让您感到抓狂

这是我的修复 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 缓存很酷,但是如果您不想每次加载菜单时都访问数据库(以检查依赖项是否已更改)并且菜单不经常更改,那么为什么不使用 HttpRuntime.Cache 反而?

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;
    }
}
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top