Member 13250972 Ответов: 2

Sharepoint "доступ запрещен..." при выполнении executequery после загрузки fillversioncollection


Привет, ребята, на этом мои мозги заканчиваются.

Получение "Доступ запрещен. У вас нет разрешения на выполнение этого действия или доступ к этому ресурсу." ошибка, но только при попытке получить FileVersionCollection. Отлично работает, если я опущу oclientContext. Load(fileversions).

Почему учетные данные будут работать для файла, но не при загрузке FileVersionCollection?

Что я уже пробовал:

Using oclientContext As ClientContext = New ClientContext("<sharepointsite>")
            Dim f As Microsoft.SharePoint.Client.File
            Dim fileversions As FileVersionCollection

            Try
                f = oclientContext.Web.GetFileByServerRelativeUrl("/" + e.CommandArgument.ToString())
                fileversions = f.Versions
                oclientContext.Load(f)
                oclientContext.Load(fileversions) //Works fine if I omit this
                oclientContext.ExecuteQuery()

            Catch sp_ex As Microsoft.SharePoint.Client.ServerException
                Context.Response.ContentType = "text/plain"
                If sp_ex.ServerErrorTypeName = "System.IO.FileNotFoundException" Then
                    f = Nothing
                    Context.Response.Write("File Not Found")
                Else
                    Context.Response.Write(sp_ex.ServerErrorTypeName)
                End If
                Exit Sub

            Catch ex As Exception
                f = Nothing
                Context.Response.ContentType = "text/plain"
                Context.Response.Write(ex.InnerException.Message)
                Exit Sub

            End Try

        End Using

Member 13250972

Кто-нибудь?

2 Ответов

Рейтинг:
10

Member 13250972

Как с большинством проблем, которые принимают навсегда, чтобы выяснить, есть простое решение. (Хотя я нашел множество очень сложных способов решения одной и той же проблемы, но это не сработало)

Проблема была в подсайтах.
Нужно включить дочерний сайт в ClientContext.

В моем случае мне нужно было определить подсайт динамически из fileurl который хранится в е.CommandArgument контроля.

Dim subsite As String = Regex.Match(e.CommandArgument.ToString(), ".*?(?=\/)", RegexOptions.IgnoreCase).ToString()
        Using oclientContext As ClientContext = New ClientContext("https://<sharepointsite>/" + subsite)


Рейтинг:
0

Richard Deeming

Вполне возможно иметь разрешение на чтение, изменение и удаление файла, но не иметь разрешения на просмотр версий. Например, "ограниченное чтение" дает вам разрешение на просмотр и открытие элементов, но не на просмотр версий.

Понимание уровней разрешений в SharePoint-поддержка Office[^]

Вам нужно будет проконсультироваться с администратором SharePoint, чтобы узнать, какие разрешения предоставляются учетной записи, от имени которой выполняется ваш код.


Member 13250972

Администратор установил разрешения на "чтение", которые ранее были установлены на"ограниченное чтение" ...но никакой радости.

Администратор сказал, что это может занять некоторое время, чтобы измениться, но я ждал около двух часов.