public async Task <IActionResult> ExtensionWebHookHandler(string name, CancellationToken token)
        {
            var provider = _scriptHostManager.BindingWebHookProvider;

            var handler = provider.GetHandlerOrNull(name);

            if (handler != null)
            {
                string keyName    = WebJobsSdkExtensionHookProvider.GetKeyName(name);
                var    authResult = await _authorizationService.AuthorizeAsync(User, keyName, PolicyNames.SystemAuthLevel);

                if (!authResult.Succeeded)
                {
                    return(Unauthorized());
                }

                var requestMessage           = new HttpRequestMessageFeature(this.HttpContext).HttpRequestMessage;
                HttpResponseMessage response = await handler.ConvertAsync(requestMessage, token);

                var result = new ObjectResult(response);
                result.Formatters.Add(new HttpResponseMessageOutputFormatter());
                return(result);
            }

            return(NotFound());
        }
        public async Task <HttpResponseMessage> ExtensionWebHookHandler(string name, CancellationToken token)
        {
            var provider = _scriptHostManager.BindingWebHookProvider;

            var handler = provider.GetHandlerOrNull(name);

            if (handler != null)
            {
                string keyName = WebJobsSdkExtensionHookProvider.GetKeyName(name);
                if (!this.Request.HasAuthorizationLevel(AuthorizationLevel.System, keyName))
                {
                    return(new HttpResponseMessage(HttpStatusCode.Unauthorized));
                }

                return(await handler.ConvertAsync(this.Request, token));
            }

            return(new HttpResponseMessage(HttpStatusCode.NotFound));
        }