Как написать инъецируемый код многократного использования вместо жесткого кодирования аутентификации на каждом методе - PullRequest
0 голосов
/ 07 ноября 2018

У меня есть веб-интерфейс, который общается с 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
                    {
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...