Мне нужно сохранить динамически созданный xmldatasource для меню в кеше на основе пользователя входа. Следующий код возвращает те же данные для всех пользователей, так как я не упоминал пользователя входа. где мне нужно указать имя входа во время добавления кеша? также я хочу сбросить или удалить кеш, добавив новый сайт из приемника событий, так как карта сайта должна воссоздать.Как кэшировать в sharepoint 2010 на основе пользователя входа
private static object _lock = new object();
public XmlDocument CacheData()
{
XmlDocument item;
lock (_lock)
{
item = (XmlDocument)Cache["SiteMapCache"];
if (item == null)
{
using (SPSite site = new SPSite(SPContext.Current.Site.Url))
{
SPWebApplication webapp = site.WebApplication;
item = GenerateMenu(webapp);
}
Cache.Add("SiteMapCache",
item, null,
DateTime.Now.AddMinutes(1),
System.Web.Caching.Cache.NoSlidingExpiration,
System.Web.Caching.CacheItemPriority.Default,
null);
}
return item;
}
}