Project Online CSOM без использования SharePointOnlineCredentials

Каждую ночь у нас запускается консольное приложение, которое обновляет некоторые планы проектов с помощью CSOM. Это использует SharePointOnlineCredentials для аутентификации.

Но ИТ-отделы хотят изменить флаг LegacyAuthProtocolsEnabled клиента на false. Как следствие этого, SharePointOnlineCredentials больше нельзя использовать, поскольку вы можете прочитать здесь.

Предлагаемый подход в приведенной выше ссылке заключался в использовании ClientId и ClientSecret. Я протестировал это с помощью PnP Core функции AutheticationManager GetAppOnlyAuthenticatedContext. Это работает для объекта ClientContext для SharePoint Online, но не работает после изменения этой функции для возврата объекта ProjectContext. Возникает ошибка ProjectServerError «GeneralNotLicensed», поскольку у субъекта SharePoint нет лицензии на Project Online (см. здесь).

Моя третья попытка заключалась в использовании класса Office365ClaimsHelper, найденного

person nvandeputte    schedule 17.01.2019    source источник


Ответы (1)


Удалось найти рабочее решение благодаря следующему сценарию PowerShell: https://blogs.technet.microsoft.com/sharepointdevelopersupport/2018/02/07/sharepoint-online-active-authentication/

Переведен в код C # и вызовы Project Online CSOM работают!

person nvandeputte    schedule 30.01.2019
comment
укажите шаги или код. поскольку ответы только по ссылкам не приветствуются, так как они могут быть сломаны в будущем - person Abdul Hameed; 17.04.2019