Нет такой вещи как Администратор списка .Но вы можете получить пользователей и группы с правами управления списками, хотя:
SPList list = // get your list
IEnumerable<SPPrincipal> admins = list.RoleAssignments.Cast<SPRoleAssignment>()
.Where(ra =>
ra.RoleDefinitionBindings.Cast<SPRoleDefinition>()
.Any(r => (r.BasePermissions & SPBasePermissions.ManageLists) == SPBasePermissions.ManageLists))
.Select(ra => ra.Member);
Обновление:
Разрешения для SPFolder
можно проверить с помощью соответствующих SPListItem
.Это можно получить с помощью свойства SPFolder.Item
.Поскольку и SPListItem
, и SPList
наследуют от SPSecurableObject
, проверка для SPListItem
такая же, как описано выше.
Чтобы отличить SPUser
от SPGroup
, просто проверьтетип SPRoleAssigment.Member
:
IEnumerable<SPUser> adminUsers = admins.OfType<SPUser>();
Имейте в виду, что объект SPUser
может представлять группу безопасности AD.Это можно проверить с помощью свойства SPUser.IsDomainGroup
.