zuohuaijun 3 anni fa
parent
commit
d5e0ef9aa0

+ 2 - 2
Admin.NET/Admin.NET.Core/Entity/SysLogVis.cs

@@ -64,8 +64,8 @@ public class SysLogVis : EntityTenant
     /// <summary>
     /// 浏览器
     /// </summary>
-    [SugarColumn(ColumnDescription = "浏览器", Length = 256)]
-    [MaxLength(256)]
+    [SugarColumn(ColumnDescription = "浏览器", Length = 1024)]
+    [MaxLength(1024)]
     public string? Browser { get; set; }
 
     /// <summary>

+ 5 - 2
Admin.NET/Admin.NET.Core/Hub/OnlineUserHub.cs

@@ -33,17 +33,20 @@ public class OnlineUserHub : Hub<IOnlineUserHub>
         var token = Context.GetHttpContext().Request.Query["access_token"];
         var claims = JWTEncryption.ReadJwtToken(token)?.Claims;
         var client = Parser.GetDefault().Parse(Context.GetHttpContext().Request.Headers["User-Agent"]);
+
+        var userId = claims.FirstOrDefault(u => u.Type == ClaimConst.UserId)?.Value;
+        var tenantId = claims.FirstOrDefault(u => u.Type == ClaimConst.TenantId)?.Value;
         var user = new SysOnlineUser
         {
             ConnectionId = Context.ConnectionId,
-            UserId = long.Parse(claims.FirstOrDefault(u => u.Type == ClaimConst.UserId)?.Value),
+            UserId = string.IsNullOrWhiteSpace(userId) ? 0 : long.Parse(userId),
             UserName = claims.FirstOrDefault(u => u.Type == ClaimConst.Account)?.Value,
             RealName = claims.FirstOrDefault(u => u.Type == ClaimConst.RealName)?.Value,
             Time = DateTime.Now,
             Ip = App.HttpContext.GetRemoteIpAddressToIPv4(),
             Browser = client.UA.Family + client.UA.Major,
             Os = client.OS.Family + client.OS.Major,
-            TenantId = Convert.ToInt64(claims.FirstOrDefault(u => u.Type == ClaimConst.TenantId)?.Value),
+            TenantId = string.IsNullOrWhiteSpace(tenantId) ? 0 : Convert.ToInt64(tenantId),
         };
         await _sysOnlineUerRep.InsertAsync(user);
 

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

@@ -72,7 +72,7 @@ public class SysAuthService : IDynamicApiController, ITransient
 
         // 租户是否被禁用
         var tenant = await _sysUserRep.ChangeRepository<SqlSugarRepository<SysTenant>>().GetFirstAsync(u => u.Id == user.TenantId);
-        if (tenant?.Status == StatusEnum.Disable)
+        if (tenant != null && tenant.Status == StatusEnum.Disable)
             throw Oops.Oh(ErrorCodeEnum.Z1003);
 
         // 密码是否正确