我正在使用以下代码来获取 Web 应用程序网站集中的所有“公告”列表。
不幸的是,有时当前用户没有访问该站点的权限,并且页面会因异常而失败,即使在 try 块内也是如此。
为所有用户安全地执行以下操作的正确方法是什么,即使是匿名用户也不会得到任何结果?
static public List<SPListMeta> AllSiteAnnouncementsLists()
{
var returnList = new List<SPListMeta>();
foreach (SPSite oSiteCollection in SPContext.Current.Web.Site.WebApplication.Sites)
{
var collWebs = oSiteCollection.AllWebs;
try
{
foreach (SPWeb oWebsite in collWebs)
{
using (oWebsite)
{
var collSiteLists = oWebsite.GetListsOfType(SPBaseType.GenericList);
returnList.AddRange(from SPList oList in collSiteLists where oList.Title == "Announcements" select new SPListMeta(oList));
}
}
}
catch
{
}
}
return returnList;
}