Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
        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);
        }