public async Task <IActionResult> HandleHook() { LogHeaders(Request.Headers); var verified = _signatureVerifier.Verify(Request, DateTime.UtcNow); if (!verified) { _logger.LogWarning("Bad Signature!"); return(this.Unauthorized()); } // the body is json, but we aren't trying to deserialize it here--we're just dumping it to the message sink using StreamReader reader = new StreamReader(Request.Body, Encoding.UTF8); var content = await reader.ReadToEndAsync(); _sink.HandleMessage(content); return(Ok()); }