Как избежать дублирования кода при проверке токенов веб-API C # - PullRequest
0 голосов
/ 21 октября 2019

У меня есть несколько веб-API, они должны выполнить некоторую базовую проверку токена перед выполнением основного кода (MyLogic ......). Могу я узнать, как лучше всего это сделать. Итак, код подтверждения токена может быть повторно использован всеми разными API?

 public async Task<IHttpActionResult> Get(string txtPlaceId)
    {            
        try
        {
            HelloSecurityViaDB helloSecurity = new HelloSecurityViaDB(db);

            String token = RequestServices.GetHeaderToken(Request);
            String userIpAddress = RequestServices.GetIpAddress(Request);

            if (helloSecurity.IsValidToken(token, userIpAddress) == TrackingType.Successful)
            {

                   ////////////////////////////////////////////////////////////////////////
                   ////////////////////////////////////////////////////////////////////////
                   // Different web api will have different logic (MyLogic....) here     //

                   ...MyLogic......

                   // Code Above and below MyLogic will be same for all API //  
                   ////////////////////////////////////////////////////////////////////////
                   ////////////////////////////////////////////////////////////////////////
                databaseHelloLogger.AddEvent(((System.Web.HttpContextWrapper)Request.Properties["MS_HttpContext"]).Request, DateTime.Now, token, TrackingType.Successful);

                if (responseFromServer != null)
                {
                    return Ok(responseFromServer);
                }
                else
                {
                    return NotFound();
                }
            }
            else
            {
                return Unauthorized();
            }
        }
        catch (Exception ex)
        {
            return NotFound();
        }
    }
 }
...