Эх сурвалжийг харах

防止登录时用户名被枚举爆破

FunCoder 2 жил өмнө
parent
commit
4b87025f3c

+ 6 - 0
Admin.NET/Admin.NET.Core/Enum/ErrorCodeEnum.cs

@@ -27,6 +27,12 @@ public enum ErrorCodeEnum
     [ErrorCodeItemMetadata("账号不存在")]
     D0009,
 
+    /// <summary>
+    /// 账号或密码不存在
+    /// </summary>
+    [ErrorCodeItemMetadata("账号或密码不存在")]
+    D0010,
+
     /// <summary>
     /// 密码不正确
     /// </summary>

+ 6 - 6
Admin.NET/Admin.NET.Core/Service/Auth/SysAuthService.cs

@@ -80,7 +80,7 @@ public class SysAuthService : IDynamicApiController, ITransient
 
         // 账号是否存在
         var user = await _sysUserRep.AsQueryable().Includes(t => t.SysOrg).ClearFilter().FirstAsync(u => u.Account.Equals(input.Account));
-        _ = user ?? throw Oops.Oh(ErrorCodeEnum.D0009);
+        _ = user ?? throw Oops.Oh(ErrorCodeEnum.D0010);
 
         // 账号是否被冻结
         if (user.Status == StatusEnum.Disable)
@@ -131,7 +131,7 @@ public class SysAuthService : IDynamicApiController, ITransient
             if (!user.Password.Equals(MD5Encryption.Encrypt(input.Password)))
             {
                 _sysCacheService.Set(keyErrorPasswordCount, ++errorPasswordCount, TimeSpan.FromMinutes(30));
-                throw Oops.Oh(ErrorCodeEnum.D1000);
+                throw Oops.Oh(ErrorCodeEnum.D0010);
             }
         }
         else
@@ -139,7 +139,7 @@ public class SysAuthService : IDynamicApiController, ITransient
             if (!CryptogramUtil.Decrypt(user.Password).Equals(input.Password))
             {
                 _sysCacheService.Set(keyErrorPasswordCount, ++errorPasswordCount, TimeSpan.FromMinutes(30));
-                throw Oops.Oh(ErrorCodeEnum.D1000);
+                throw Oops.Oh(ErrorCodeEnum.D0010);
             }
         }
     }
@@ -154,7 +154,7 @@ public class SysAuthService : IDynamicApiController, ITransient
     {
         // 账号是否存在
         var user = await _sysUserRep.GetFirstAsync(u => u.Id == _userManager.UserId);
-        _ = user ?? throw Oops.Oh(ErrorCodeEnum.D0009);
+        _ = user ?? throw Oops.Oh(ErrorCodeEnum.D0010);
 
         // 国密SM2解密(前端密码传输SM2加密后的)
         password = CryptogramUtil.SM2Decrypt(password);
@@ -163,12 +163,12 @@ public class SysAuthService : IDynamicApiController, ITransient
         if (CryptogramUtil.CryptoType == CryptogramEnum.MD5.ToString())
         {
             if (!user.Password.Equals(MD5Encryption.Encrypt(password)))
-                throw Oops.Oh(ErrorCodeEnum.D1000);
+                throw Oops.Oh(ErrorCodeEnum.D0010);
         }
         else
         {
             if (!CryptogramUtil.Decrypt(user.Password).Equals(password))
-                throw Oops.Oh(ErrorCodeEnum.D1000);
+                throw Oops.Oh(ErrorCodeEnum.D0010);
         }
 
         return true;