zuohuaijun 2 лет назад
Родитель
Сommit
a1666409ac

+ 3 - 3
Admin.NET/Admin.NET.Core/Admin.NET.Core.csproj

@@ -21,9 +21,9 @@
     <PackageReference Include="AspNet.Security.OAuth.Gitee" Version="6.0.15" />
     <PackageReference Include="AspNet.Security.OAuth.Weixin" Version="6.0.15" />
     <PackageReference Include="AspNetCoreRateLimit" Version="5.0.0" />
-    <PackageReference Include="Furion.Extras.Authentication.JwtBearer" Version="4.9.2.14" />
-    <PackageReference Include="Furion.Extras.ObjectMapper.Mapster" Version="4.9.2.14" />
-    <PackageReference Include="Furion.Pure" Version="4.9.2.14" />
+    <PackageReference Include="Furion.Extras.Authentication.JwtBearer" Version="4.9.2.15" />
+    <PackageReference Include="Furion.Extras.ObjectMapper.Mapster" Version="4.9.2.15" />
+    <PackageReference Include="Furion.Pure" Version="4.9.2.15" />
     <PackageReference Include="IPTools.China" Version="1.6.0" />
     <PackageReference Include="IPTools.International" Version="1.6.0" />
     <PackageReference Include="Lazy.Captcha.Core" Version="2.0.6" />

+ 4 - 8
Admin.NET/Admin.NET.Core/Service/Auth/SysAuthService.cs

@@ -100,19 +100,16 @@ public class SysAuthService : IDynamicApiController, ITransient
             var userLdap = await _sysUserLdap.GetFirstAsync(u => u.UserId == user.Id && u.TenantId == tenant.Id);
             if (userLdap == null)
             {
-                //不存在用户信息则采用原本密码验证规则
-                UserPasswordValid(input, keyErrorPasswordCount, errorPasswordCount, user);
+                VerifyPassword(input, keyErrorPasswordCount, errorPasswordCount, user);
             }
-            // 域验证
             else if (!await _sysLdapService.Auth(tenant.Id, userLdap.Account, input.Password))
             {
                 _sysCacheService.Set(keyErrorPasswordCount, ++errorPasswordCount, TimeSpan.FromMinutes(30));
                 throw Oops.Oh(ErrorCodeEnum.D1000);
             }
         }
-        // 密码是否正确
         else
-            UserPasswordValid(input, keyErrorPasswordCount, errorPasswordCount, user);
+            VerifyPassword(input, keyErrorPasswordCount, errorPasswordCount, user);
 
         // 登录成功则清空密码错误次数
         _sysCacheService.Remove(keyErrorPasswordCount);
@@ -121,13 +118,13 @@ public class SysAuthService : IDynamicApiController, ITransient
     }
 
     /// <summary>
-    /// 用户密码验证
+    /// 验证用户密码
     /// </summary>
     /// <param name="input"></param>
     /// <param name="keyErrorPasswordCount"></param>
     /// <param name="errorPasswordCount"></param>
     /// <param name="user"></param>
-    private void UserPasswordValid(LoginInput input, string keyErrorPasswordCount, int errorPasswordCount, SysUser user)
+    private void VerifyPassword(LoginInput input, string keyErrorPasswordCount, int errorPasswordCount, SysUser user)
     {
         if (CryptogramUtil.CryptoType == CryptogramEnum.MD5.ToString())
         {
@@ -147,7 +144,6 @@ public class SysAuthService : IDynamicApiController, ITransient
         }
     }
 
-
     /// <summary>
     /// 验证锁屏密码 🔖
     /// </summary>

+ 5 - 5
Admin.NET/Admin.NET.Core/Service/Auth/SysLdapService.cs

@@ -114,13 +114,13 @@ public class SysLdapService : IDynamicApiController, ITransient
     [NonAction]
     public async Task<bool> Auth(long tenantId, string account, string password)
     {
-        var ldap = await _rep.GetFirstAsync(u => u.TenantId == tenantId) ?? throw Oops.Oh(ErrorCodeEnum.D1002);
-        LdapConnection conn = new LdapConnection();
+        var ldap = await _sysLdapRep.GetFirstAsync(u => u.TenantId == tenantId) ?? throw Oops.Oh(ErrorCodeEnum.D1002);
+        var ldapConn = new LdapConnection();
         try
         {
-            conn.Connect(ldap.Host, ldap.Port);
-            conn.Bind(ldap.Version, ldap.BindDn, ldap.BindPass);
-            var userEntitys = conn.Search(ldap.BaseDn, LdapConnection.ScopeSub, $"{ldap.AuthFilter}={account}", null, false);
+            ldapConn.Connect(ldap.Host, ldap.Port);
+            ldapConn.Bind(ldap.Version, ldap.BindDn, ldap.BindPass);
+            var userEntitys = ldapConn.Search(ldap.BaseDn, LdapConnection.ScopeSub, $"{ldap.AuthFilter}={account}", null, false);
             string dn = string.Empty;
             while (userEntitys.HasMore())
             {