, MSDN , .
, SharePoint 2010, , , RunWithElevatedPrivileges, , , , catch-22 . (LoginName - FBA "\" AD - ):
SPSecurity.RunWithElevatedPrivileges(delegate()
{
using (SPSite elevatedSite = new SPSite(siteCollectionUrl))
{
foreach (SPSite siteCollection in elevatedSite.WebApplication.Sites)
{
using (SPWeb elevatedWeb = siteCollection.OpenWeb())
{
bool allowUnsafeUpdates = elevatedWeb.AllowUnsafeUpdates;
bool originalCatchValue = SPSecurity.CatchAccessDeniedException;
SPSecurity.CatchAccessDeniedException = false;
try
{
elevatedWeb.AllowUnsafeUpdates = true;
SPUser innerUser = elevatedWeb.EnsureUser(loginName);
if (null != innerUser)
{
string splogin = innerUser.LoginName;
if (!string.IsNullOrEmpty(splogin) && elevatedWeb.DoesUserHavePermissions(splogin, SPBasePermissions.ViewPages))
{
}
}
}
catch (UnauthorizedAccessException)
{
}
catch (Exception)
{
}
finally
{
elevatedWeb.AllowUnsafeUpdates = allowUnsafeUpdates;
SPSecurity.CatchAccessDeniedException = originalCatchValue;
}
}
}
}
});