У меня есть веб-интерфейс, который общается с Sharepoint для выполнения операций уровня арендатора, таких как перечисление семейств сайтов, создание сайтов и т. Д. И т. Д.
Методы веб-API работают отлично, но, однако, механизм аутентификации может измениться в будущем, теперь единственным способом создания современного семейства сайтов является использование аутентифицированного пользователя и пароля, в будущем они могут включить аутентификацию только приложения для создания современных сайты: https://sharepoint.uservoice.com/forums/329220-sharepoint-dev-platform/suggestions/34236700-ability-to-use-app-only-calls-to-create-modern-sit
Проблема с моим кодом состоит в том, что я жестко закодировал строку аутентификации в каждом методе webapi, и я хотел бы абстрагировать эту строку таким образом, чтобы он выходил за пределы класса webapi, чтобы всякий раз, когда Microsoft реализует другой механизм аутентификации, что я могу легко изменить этот класс, а не методы веб-API один за другим.
[HttpPost]
[Route("")]
//[Route("api/SiteCollections/CreateModernSite")]
public async Task<IHttpActionResult> CreateModernSite([FromBody]NewSiteInformation model)
{
if (ModelState.IsValid)
{
var tenant = await TenantHelper.GetTenantAsync();
using (var context = new OfficeDevPnP.Core.AuthenticationManager().GetSharePointOnlineAuthenticatedContextTenant("https://xxx.sharepoint.com/sites/tesmmodernsite1", "xxx@xxx.onmicrosoft.com", "xxx"))
{
try
{