2017-02-13 3 views
0

Я использую объектную модель SharePoint Client для входа в SharePoint в Интернете, а затем извлекаю списки для получения документов на Sharepoint. Затем я хочу получить общую ссылку для этих документов. Вот как я это делаю в данный момент:SharePoint Online CSOM Обмен информацией Объект

using (var context = new ClientContext(siteURL)) 
{ 
    context.Credentials = new SharePointOnlineCredentials(login, securePassword); 
    context.Load(context.Web, w => w.Title); 
    context.ExecuteQuery(); 

    List docList = context.Web.Lists.GetByTitle("Documents"); 
    context.Load(docList); 
    // This creates a CamlQuery that has a RowLimit of 100, and also specifies Scope="RecursiveAll" 
    // so that it grabs all list items, regardless of the folder they are in. 
    CamlQuery query = CamlQuery.CreateAllItemsQuery(100); 
    ListItemCollection items = docList.GetItems(query); 

    // Retrieve all items in the ListItemCollection from List.GetItems(Query). 
    context.Load(items); 
    context.ExecuteQuery(); 
    foreach (ListItem listItem in items) 
    { 
      var sharingInfo = ObjectSharingInformation.GetListItemSharingInformation(
      context, docList.Id, listItem.Id, false, true, false, true, true, true); 

      context.Load(sharingInfo); 
      context.ExecuteQuery(); 
      string str = sharingInfo.AnonymousEditLink; 
    } 
} 

Проблема здесь в том, что sharingInfo объект имеет поле под названием AnonymousEditLink, но это пустая строка. Я не уверен, почему это пустая строка. Правильно ли вы собираетесь создать ссылку для совместного доступа?

Я также попытался это (но безуспешно):

var sharingInfo = ObjectSharingInformation.GetObjectSharingInformation(
        context, listItem, false, true, false, true, true, true, true); 

Я имею в виду способ, показанный здесь: https://sharepoint.stackexchange.com/questions/143612/how-to-retrieve-the-shared-link-of-a-file-programmatically

Я новичок в Sharepoint и к CSOM поэтому любая помощь будут оценены!

+0

Вам повезло с этим? Когда я делаю запрос, он не показывает пользователей за пределами домена, даже если его отображают в пользовательском интерфейсе – Boomerang

ответ

0

Я выполнял некоторую работу/тестирование с помощью GetListItemSharingInformation, и, как представляется, анонимная запись становится заполненной после того, как пользователь получил ссылку, полученную по электронной почте.

То же самое происходит с SharedWithUsersCollection. По сути, как только пользователь имеет доступ к ссылке. Вы увидите, что свойства заполнены.

Смежные вопросы