Не самое эффективное решение этой проблемы, но вы можете перебрать все семейства сайтов / веб-сайты в веб-приложении и затем вызвать:
web.DoesUserHavePermissions(userID, SPBasePermissions.Open)
где "web" - это объект SPWeb, а userID - это "DOMAIN \ user.name" пользователя, для которого вы проверяете права доступа. Сделайте это в RWEP и убедитесь, что вы правильно утилизируете объекты SPSite / SPWeb.