如何编写可注入的可重用代码,而不是对每种方法的身份验证进行硬编码

时间:2018-11-07 18:47:39

标签: c# .net design-patterns sharepoint dependency-injection

我有一个Webapi,可以与Sharepoint进行租户级别的操作,例如列出网站集,创建网站等。

Web 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实现不同的身份验证机制时,我可以轻松地更改该类,而不是一个一个地更改Web 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
                    {

0 个答案:

没有答案