Вопрос
Есть ли у кого опыт создания ASP.NET на основе SQL поставщики карты сайта?
У меня есть XML-файл по умолчанию web.sitemap
правильно работать с моим меню и Карта сайтаПуть элементы управления, но мне нужно, чтобы пользователи моего сайта могли динамически создавать и изменять страницы.
Мне нужно привязать права просмотра страниц к стандарту ASP.NET
членская система, а также.
Нет правильного решения
Другие советы
Версия Джеффа Просиза из журнала MSDN работает довольно хорошо, но у нее есть несколько недостатков:
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;
}
}