From ce08db7fdb31a61c6ee672d89d6c4b4b66c1f6d6 Mon Sep 17 00:00:00 2001
From: hutongqing <hutongqing@hnkhzn.com>
Date: 星期四, 16 一月 2025 14:41:51 +0800
Subject: [PATCH] Merge branch 'master' of http://115.159.85.185:8098/r/MeiRuiAn/HuaiAn

---
 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_Core/HttpContextUser/AspNetUser.cs |   70 ++++++++++++++++++++++++++++------
 1 files changed, 57 insertions(+), 13 deletions(-)

diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_Core/HttpContextUser/AspNetUser.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_Core/HttpContextUser/AspNetUser.cs"
index 1bf7f75..4637b01 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_Core/HttpContextUser/AspNetUser.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_Core/HttpContextUser/AspNetUser.cs"
@@ -9,12 +9,8 @@
 using System.Security.Claims;
 using System.Text;
 using System.Threading.Tasks;
-using WIDESEA_Core.Authorization;
-using WIDESEA_Core.Caches;
-using WIDESEA_Core.Const;
-using WIDESEA_Core.DB;
+using WIDESEA_Core.Extensions;
 using WIDESEA_Core.Helper;
-using WIDESEA_Core.Seed;
 using ICacheService = WIDESEA_Core.Caches.ICacheService;
 
 namespace WIDESEA_Core.HttpContextUser
@@ -51,18 +47,51 @@
 
         public string GetToken()
         {
-            string token = _cacheService.Get(UserId.ToString());
-            if (!string.IsNullOrEmpty(token)) { return token; }
-            return string.Empty;
-            //return _accessor.HttpContext?.Request?.Headers["Authorization"].ObjToString().Replace("Bearer ", "") ?? "";
+            string token = "";
+
+            if (MenuType == 0)
+            {
+                token = _cacheService.Get(UserId.ToString());
+                if (!string.IsNullOrEmpty(token)) { return token; }
+                token = _accessor.HttpContext?.Request?.Headers["Authorization"].ObjToString().Replace("Bearer ", "") ?? "";
+                if (!token.IsNullOrEmpty())
+                {
+                    return token;
+                }
+                return token;
+            }
+            else
+            {
+                token = _cacheService.Get(UserId.ToString() + "-App");
+                if (!string.IsNullOrEmpty(token)) { return token; }
+                token = _accessor.HttpContext?.Request?.Headers["Authorization"].ObjToString().Replace("Bearer ", "") ?? "";
+                if (!token.IsNullOrEmpty())
+                {
+                    return token;
+                }
+                return token;
+            }
         }
 
         public void UpdateToke(string token)
         {
-            _cacheService.AddOrUpdate(UserId.ToString(), token);
+            if (MenuType == 0)
+                _cacheService.AddOrUpdate(UserId.ToString(), token);
+            else
+                _cacheService.AddOrUpdate(UserId.ToString() + "-App", token);
+        }
+
+        public void UpdateToke(string token, int userId)
+        {
+            if (MenuType == 0)
+                _cacheService.AddOrUpdate(userId.ToString(), token);
+            else
+                _cacheService.AddOrUpdate(userId.ToString() + "-App", token);
         }
 
         public bool IsSuperAdmin => IsRoleIdSuperAdmin(RoleId);
+
+        public bool IsHighestRole => UserId == 1;
 
         public List<string> GetUserInfoFromToken(string ClaimType)
         {
@@ -75,9 +104,10 @@
             {
                 JwtSecurityToken jwtToken = jwtHandler.ReadJwtToken(token);
 
-                return (from item in jwtToken.Claims
-                        where item.Type == ClaimType
-                        select item.Value).ToList();
+                List<string> items = (from item in jwtToken.Claims
+                                      where item.Type == ClaimType
+                                      select item.Value).ToList();
+                return items;
             }
 
             return new List<string>() { };
@@ -99,6 +129,20 @@
             return ArraySegment<Claim>.Empty;
         }
 
+        public IEnumerable<Claim> GetClaimsIdentity(string token)
+        {
+            var jwtHandler = new JwtSecurityTokenHandler();
+            // token鏍¢獙
+            if (token.IsNotEmptyOrNull() && jwtHandler.CanReadToken(token))
+            {
+                var jwtToken = jwtHandler.ReadJwtToken(token);
+
+                return jwtToken.Claims;
+            }
+
+            return new List<Claim>();
+        }
+
         public List<string> GetClaimValueByType(string ClaimType)
         {
             return (from item in GetClaimsIdentity()

--
Gitblit v1.9.3