From 8b8a0010dbf07f13636b6282ef48fa46b4548206 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E7=82=9C=E7=BF=94?= <2307953404@qq.com> Date: Thu, 31 Oct 2024 15:45:28 +0800 Subject: [PATCH] 1 --- asg_form/Controllers/login.cs | 47 +++++++++++++--------- asg_form/Controllers/prerfunctions/Draw.cs | 9 +++-- 2 files changed, 32 insertions(+), 24 deletions(-) diff --git a/asg_form/Controllers/login.cs b/asg_form/Controllers/login.cs index e4a8968..cc9c5db 100644 --- a/asg_form/Controllers/login.cs +++ b/asg_form/Controllers/login.cs @@ -17,6 +17,7 @@ using MailKit.Net.Smtp; using System.Security.Authentication; using Flurl.Http; using Microsoft.EntityFrameworkCore; +using System.CodeDom.Compiler; namespace asg_form.Controllers { @@ -168,7 +169,6 @@ namespace asg_form.Controllers /// [Route("api/v1/enroll")] [HttpPost] - [Authorize] public async Task> Post([FromBody] Adduserreq newuser) { int wp = -1; @@ -218,35 +218,43 @@ namespace asg_form.Controllers } public readonly CaptchaService _captchaService = new CaptchaService(); + /// + /// 验证码生成 + /// + [Route("api/v2/makeCaptcha")] + [HttpGet] + public ActionResult<(string captchaImage, string captchaCode)> GetCaptcha() + { + var captchaService = new CaptchaService(); + var (captchaImage, captchaCode) = captchaService.GenerateCaptcha(); + + // 这里可以将验证码存储在内存缓存或数据库中,以便后续验证 + //StoreCaptcha(captchaCode); // 自定义存储逻辑 + + return Ok(new { captchaImage, captchaCode }); + } /// /// 验证码注册 /// [Route("api/v2/enroll")] [HttpPost] - [Authorize] - public async Task> enroll([FromBody] AddUserReq newuser) + public async Task> Enroll([FromBody] AddUserReq newuser) { int wp = -1; try { - var maxId = await userManager.Users.MaxAsync(u => u.Id); - wp = 0; - - // 创建验证码服务实例 - var captchaService = new CaptchaService(); - - // 验证验证码的逻辑 - bool isCaptchaValid = captchaService.ValidateCaptcha(newuser.captcha); // 使用之前的验证码服务 - if (!isCaptchaValid) + //验证验证码的逻辑 + //bool isCaptchaValid = ValidateCaptcha(newuser.captcha); // 自定义验证逻辑 + if (true) { - return BadRequest(new error_mb { code = 400, message = "验证码无效" }); + return BadRequest(new { code = 400, message = "验证码无效" }); } - User? user = await this.userManager.FindByNameAsync(newuser.userName); + var maxId = await userManager.Users.MaxAsync(u => u.Id); + User? user = await userManager.FindByNameAsync(newuser.userName); if (user == null) { - wp = 1; user = new User { Id = maxId + 1, @@ -255,16 +263,14 @@ namespace asg_form.Controllers EmailConfirmed = true, Integral = 0 }; - wp = 3; - var r = await userManager.CreateAsync(user, newuser.password); - wp = 4; - if (!r.Succeeded) + var result = await userManager.CreateAsync(user, newuser.password); + if (!result.Succeeded) { return BadRequest(new error_mb { code = 400, - message = string.Join(", ", r.Errors.Select(e => e.Description)) + message = string.Join(", ", result.Errors.Select(e => e.Description)) }); } @@ -283,6 +289,7 @@ namespace asg_form.Controllers } + public record Adduserreq(string userName, string password, string chinaname, string token); public record AddUserReq(string userName, string password, string chinaname, string captcha); diff --git a/asg_form/Controllers/prerfunctions/Draw.cs b/asg_form/Controllers/prerfunctions/Draw.cs index 8176a24..fc05195 100644 --- a/asg_form/Controllers/prerfunctions/Draw.cs +++ b/asg_form/Controllers/prerfunctions/Draw.cs @@ -5,12 +5,13 @@ using System.IO; public class CaptchaService { - private string generatedCaptchaCode; - + public string generatedCaptchaCode; + public int wrp = 0; // 生成验证码图像并返回Base64字符串 public (string captchaImage, string captchaCode) GenerateCaptcha() { - generatedCaptchaCode = GenerateRandomCode(5); // 生成5位随机字符 + generatedCaptchaCode = GenerateRandomCode(4); // 生成5位随机字符 + wrp = 2; Bitmap bitmap = new Bitmap(100, 40); using (Graphics g = Graphics.FromImage(bitmap)) @@ -21,7 +22,7 @@ public class CaptchaService g.DrawString(generatedCaptchaCode, font, Brushes.Black, 10, 10); } } - + wrp = 1; using (MemoryStream ms = new MemoryStream()) { bitmap.Save(ms, ImageFormat.Png);