Как создать ссылку для обмена в Sharepoint Online через c#? - PullRequest
0 голосов
/ 30 марта 2020

У меня есть приложение, которое работает с файлами в Sharepoint Online с использованием библиотеки SharePointPnPCoreOnline . Когда куча файлов загружается в какую-то определенную папку, я хочу создать ссылку для общего доступа к этой папке, чтобы все в моей организации, кто имеет эту ссылку, могли читать эти файлы.

Я знаю, как это сделать поэтому в веб-интерфейсе Sharepoint: go на ваш сайт -> Документы -> Выбрать указанную c папку или файл -> Управление доступом -> Поделиться -> Выбрать тип доступа (Все в моей организации со ссылкой), введите имя адресата и нажмите «Отправить». Теперь я хочу сделать это внутри своего приложения.

Я нашел, как получить ссылки для обмена защищаемыми объектами. Вы можете использовать ObjectSharingInformation class и Sharing links property. Но у меня нет возможности создать ссылку для обмена.

Так есть ли вероятность, что это возможно программно? Если это невозможно через SharePointPnPCoreOnline, может быть, я могу использовать какой-нибудь API? Я попытался с помощью Fiddler перехватить http-запросы к Graph API, которые были отправлены при создании ссылки в веб-интерфейсе, но не удалось извлечь какие-либо ценные параметры.

Заранее спасибо!

1 Ответ

0 голосов
/ 30 марта 2020

Попробуйте

using (ClientContext context = new ClientContext("https://xxx.sharepoint.com/sites/s"))
            {
                string s = "password";
                SecureString passWord = new SecureString();
                foreach (var c in s)
                    passWord.AppendChar(c);
                context.Credentials = new SharePointOnlineCredentials("user@xxx.onmicrosoft.com", passWord);

                //ObjectSharingInformation
                ClientResult<string> url = Web.CreateOrganizationSharingLink((ClientRuntimeContext)context, "file url", false);
              context.ExecuteQuery();
...