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)); }