diff --git a/API/Wood.Admin.WebApi/Startup.cs b/API/Wood.Admin.WebApi/Startup.cs index f777392..0c47b77 100644 --- a/API/Wood.Admin.WebApi/Startup.cs +++ b/API/Wood.Admin.WebApi/Startup.cs @@ -217,8 +217,22 @@ namespace Wood.Admin.WebApi //添加跨域 //services.AddCors(); - services.AddCors(); - + //services.AddCors(); + + + services.AddCors(options => + { + options.AddPolicy("AllowAll", builder => + { + builder + .AllowAnyOrigin() // 允许所有来源 + .AllowAnyMethod() // 允许所有 HTTP 方法(GET、POST 等) + .AllowAnyHeader(); // 允许所有请求头 + }); + }); + + + //添加缓存支持 services.AddMemoryCache(); @@ -387,11 +401,15 @@ namespace Wood.Admin.WebApi //文件拦截中间件 app.UseMiddleware(); - app.UseCors(builder => - { - builder.WithOrigins(GlobalContext.SystemConfig!.AllowCorsSite.Split(',')).AllowAnyHeader().AllowAnyMethod().AllowCredentials(); - }); - app.UseRouting(); + + app.UseCors("AllowAll"); + + + //app.UseCors(builder => + //{ + // builder.WithOrigins(GlobalContext.SystemConfig!.AllowCorsSite.Split(',')).AllowAnyHeader().AllowAnyMethod().AllowCredentials(); + //}); + app.UseRouting(); // 使用身份验证中间件 app.UseAuthentication(); diff --git a/API/Wood.Admin.WebApi/Wood.Admin.WebApi.csproj b/API/Wood.Admin.WebApi/Wood.Admin.WebApi.csproj index dd5fcd3..91eb673 100644 --- a/API/Wood.Admin.WebApi/Wood.Admin.WebApi.csproj +++ b/API/Wood.Admin.WebApi/Wood.Admin.WebApi.csproj @@ -59,3 +59,4 @@ + diff --git a/API/Wood.Service/SystemManage/UserService.cs b/API/Wood.Service/SystemManage/UserService.cs index 40320bd..a391fa5 100644 --- a/API/Wood.Service/SystemManage/UserService.cs +++ b/API/Wood.Service/SystemManage/UserService.cs @@ -165,10 +165,64 @@ namespace Wood.Service.SystemManage throw Oops.Oh("登录失败,没有相关用户信息!"); } - /// - /// 用户租户登录 - /// - [AllowAnonymous] + /// + /// 用户登录 + /// + /// 可用租户信息 + [AllowAnonymous] + public async Task LoginExtned(UserLoginParam param) + { + if (!(int.TryParse(param.CaptchaCode, out int val) && _cache.TryGetCache(param.Captcha, out int cacheVal) && val == cacheVal)) + { + _cache.RemoveCache(param.Captcha); + throw Oops.Oh("验证码错误!"); + } + + _cache.SetCache(param.Captcha, param.UserName, DateTime.Now.AddMinutes(5)); + + var users = await _userRepository.AsQueryable() + .Where(it => it.UserName == param.UserName) + .Where(it => it.Status == 1) + .ToListAsync(); + + if (users == null || users.Count < 1) + throw Oops.Oh($"不存在用户【{param.UserName}】!"); + List passOk = new List(); //密码验证通过的账户信息 + foreach (var item in users) + { + if (param!.Password == CryptogramHelper.GMSM4Decrypt(item.Password)) + passOk.Add(item); + } + + if (passOk.Any()) + { + var tenantIds = passOk.Select(it => it.TenantId).ToList(); + var tenants = await _tenantRepository.AsQueryable() + .Where(it => tenantIds.Contains(it.Id)) + .Select(it => new { it.Id, it.TenantName, it.Status }) + .ToListAsync(); + + if (tenants.All(it => it.Status != 1)) + throw Oops.Oh("登录失败,账号已经冻结!"); + + return tenants; + } + throw Oops.Oh("登录失败,没有相关用户信息!"); + } + + + + + + + + + + + /// + /// 用户租户登录 + /// + [AllowAnonymous] public async Task TenantLogin(UserTenantLoginParam param) { if (_cache.TryGetCache(param.Captcha, out string? cacheVal) && cacheVal == param.UserName)