SharePoint. Get list of all DocumentLibraries
I do async ajax request. On server side I have this:
protected static string LibsCheck(string userLogin)
{
string res = "";
SPSecurity.RunWithElevatedPrivileges(delegate()
{
SPWebApplication webApp = SPWebApplication.Lookup(new
Uri(SiteUrlSecure));
SPSiteCollection siteCollections = webApp.Sites;
foreach (SPSite siteCollection in siteCollections)
{
try
{
if (siteCollection.Url.Contains("/my")) continue;
foreach (SPWeb spWeb in siteCollection.AllWebs)
{
try
{
if
(spWeb.GetUserEffectivePermissions(userLogin)
== SPBasePermissions.EmptyMask) continue;
SPListCollection listCol = spWeb.Lists;
foreach (SPList spList in listCol)
{
SPBasePermissions permMask =
spList.GetUserEffectivePermissions(userLogin);
if (permMask ==
SPBasePermissions.EmptyMask) continue;
if(spList.BaseType !=
SPBaseType.DocumentLibrary) continue;
var oDocumentLibrary =
(SPDocumentLibrary) spList;
if (oDocumentLibrary.IsCatalog) continue;
res += spList.Title + ": " + permMask
+ "\n";
}
}
finally
{
if(spWeb != null)
spWeb.Dispose();
}
}
}
finally
{
if (siteCollection != null)
siteCollection.Dispose();
}
}
if (String.IsNullOrEmpty(res))
res = "Ïîëüçîâàòåëü íå èìååò äîñòóïà íè ê îäíîé
áèáëèîòåêå.";
});
return res;
}
And it works, but response time is about 200sec. or more. So, how can I
get list of all DocumentLibraries and user permissions for each one
faster?