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);