SharePointOnline CSOM доступ запрещен по запросу RoleAssignmentCollection для участника

Я пишу адаптер SharePoint с использованием Microsoft.SharePointOnline.CSOM версии 16.1.7115.1200 (текущая версия).

Требование клиента - получить информацию о том, может ли текущий пользователь переименовать определенную папку. Если пользователь "Владелец", я могу сделать это, используя:

  using (ClientContext clientContext = new ClientContext("sharepoint URL"))
        {
            clientContext.Credentials = _credentials;
            List library = clientContext.Web.Lists.GetByTitle(_libraryTitle);

            CamlQuery camlQuery = new CamlQuery();
            camlQuery.ViewXml = "<View Scope='RecursiveAll'>" +
                                   "<Query>" +
                                       "<Where>" +
                                           "<Eq><FieldRef Name='FSObjType' /><Value Type='Integer'>1</Value></Eq>" +
                                       "</Where>" +
                                   "</Query>" +
                               "</View>";

            ListItemCollection  folders = library.GetItems(camlQuery);
            clientContext.Load(folders);

            foreach (ListItem folder in folders)
            {
                clientContext.Load(folder.RoleAssignments);
                clientContext.ExecuteQuery();

                User user = clientContext.Web.EnsureUser("sharepointAccount@sharepoint.com");
                clientContext.Load(user, u => u.LoginName);
                clientContext.ExecuteQuery();

                ClientResult<BasePermissions> permissions = folder.GetUserEffectivePermissions(user.LoginName);

                RoleAssignmentCollection assignments = folder.RoleAssignments;
                clientContext.Load(assignments, ac => ac.Include(
                    a => a.RoleDefinitionBindings, a => a.Member.LoginName));
                clientContext.ExecuteQuery();
                bool canEdit = permissions.Value.Has(PermissionKind.EditListItems);
            }
        }

Когда пользователь "Пользователь", я получаю:

Необработанное исключение типа Microsoft.SharePoint.Client. ServerUnauthorizedAccessException 'произошло в Microsoft.SharePoint.Client.Runtime.dll Дополнительная информация: доступ запрещен. У вас нет разрешения на выполнение этого действия или доступ к этому ресурсу.

Вопрос: Есть ли какой-нибудь возможный способ получения информации, позволяющей переименовать информацию независимо от роли пользователя? Или, может быть, есть другой подход, который мне не хватает.

0 ответов

Другие вопросы по тегам