public async override Task HandleAsync() { GenerateCertResult result = new GenerateCertResult(); string sessionKey = this.context.Request.Query["sessionKey"]; SSLGenerate generate = this.cache.Get <SSLGenerate>(sessionKey); if (generate == null) { this.context.Response.StatusCode = 404; await this.context.Response.WriteAsync("你未申请,或申请已过期。"); return; } if (!generate.GeneratedCert) { this.context.Response.StatusCode = 200; await this.context.Response.WriteAsync("你的申请还未验证通过"); return; } byte[] zipData = await generate.GetCentificateZip(); context.Response.ContentType = "application/octet-stream"; context.Response.Headers.Add("Content-Disposition", new string[] { $"attachment;filename={generate.Domain.TrimStart('*')}.zip" }); await context.Response.Body.WriteAsync(zipData, 0, zipData.Length); }
public async override Task HandleAsync() { GenerateCertResult result = new GenerateCertResult(); result.Success = 0; string sessionKey = this.context.Request.Query["sessionKey"]; SSLGenerate generate = null; if (!this.cache.TryGetValue <SSLGenerate>(sessionKey, out generate)) { result.Message = "你的申请信息已经消失,请重新申请"; await WriteResultAsync(200, result); return; } result.Domain = generate.Domain; if (generate.GeneratedCert) { result.Success = 1; result.Message = "ok"; await WriteResultAsync(200, result); return; } (var ret, var message) = await generate.GenerateCert(); if (!ret) { result.Message = message; } else { result.Success = 1; result.Message = "ok"; } await WriteResultAsync(200, result); }