0
我需要根據登錄用戶在緩存中爲菜單存儲動態創建的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;
}
}