public IActionResult Webhook([FromQuery] string?id, [FromServices] IConfiguration config, [FromServices] IDispatchService <GiteePostBody> dispatch, [FromBody] GiteePostBody payload) { bool ret = false; if (Check()) { // 全局推送 if (payload.HeadCommit != null || payload.Commits?.Count > 0) { dispatch.Dispatch(new DispatchEntry <GiteePostBody>() { Name = "Gitee", Entry = payload }); } ret = true; } return(ret ? Ok() : Unauthorized()); bool Check() { var configId = config.GetValue <string>("WebHooks:Gitee:Id"); var configToken = config.GetValue <string>("WebHooks:Gitee:Token"); var token = ""; if (Request.Headers.TryGetValue("X-Gitee-Token", out var vals)) { token = vals.FirstOrDefault() ?? string.Empty; } return(id == configId && token == configToken && payload.Id == configId && payload.Password == configToken); } }