From f43b7df8400f4fcffc9f19dca0888d61e2b33d5f Mon Sep 17 00:00:00 2001
From: dengjunjie <dengjunjie@hnkhzn.com>
Date: 星期三, 12 三月 2025 18:41:52 +0800
Subject: [PATCH] WMS系统添加PDA权限,PDA程序

---
 项目代码/WMS/WIDESEA_WMSServer/WIDESEA_Core/HttpContextUser/AspNetUser.cs |  126 ++++++++++--------------------------------
 1 files changed, 30 insertions(+), 96 deletions(-)

diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_Core/HttpContextUser/AspNetUser.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_Core/HttpContextUser/AspNetUser.cs"
index 36743dd..1bf7f75 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_Core/HttpContextUser/AspNetUser.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_Core/HttpContextUser/AspNetUser.cs"
@@ -9,126 +9,60 @@
 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.Helper;
 using WIDESEA_Core.Seed;
+using ICacheService = WIDESEA_Core.Caches.ICacheService;
 
 namespace WIDESEA_Core.HttpContextUser
 {
     public class AspNetUser : IUser
     {
         private readonly IHttpContextAccessor _accessor;
+        private readonly ICacheService _cacheService;
         //private readonly ILogger<AspNetUser> _logger;
 
-        public AspNetUser(IHttpContextAccessor accessor/*, ILogger<AspNetUser> logger*/)
+        public AspNetUser(IHttpContextAccessor accessor, ICacheService cacheService)
         {
             _accessor = accessor;
+            _cacheService = cacheService;
             /*_logger = logger;*/
         }
 
-        public string UserName => UserInfo.UserName;
+        public string UserName => GetUserInfoFromToken(ClaimTypes.Name).FirstOrDefault() ?? "";
 
-        //private string GetName()
-        //{
-        //    if (IsAuthenticated() && _accessor.HttpContext.User.Identity.Name.IsNotEmptyOrNull())
-        //    {
-        //        return _accessor.HttpContext.User.Identity.Name;
-        //    }
-        //    else
-        //    {
-        //        if (!string.IsNullOrEmpty(GetToken()))
-        //        {
-        //            var getNameType = /*Permissions.IsUseIds4 ? */"name" /*: "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name"*/;
-        //            return GetUserInfoFromToken(getNameType).FirstOrDefault().ObjToString();
-        //        }
-        //    }
+        public int UserId => GetClaimValueByType(JwtRegisteredClaimNames.Jti) == null ? 0 : GetClaimValueByType(JwtRegisteredClaimNames.Jti).FirstOrDefault()?.ObjToInt() ?? 0;
 
-        //    return "";
-        //}
+        public long TenantId => GetUserInfoFromToken(nameof(TenantId)).FirstOrDefault()?.ObjToLong() ?? -1;
 
-        public int UserId => GetClaimValueByType("jti").FirstOrDefault().ObjToInt();
-        public long TenantId => UserInfo.TenantId;
+        public int RoleId => GetUserInfoFromToken(ClaimTypes.Role).FirstOrDefault()?.ObjToInt() ?? 0;
 
-        public int RoleId => UserInfo.RoleId;
+        public string Token => GetToken();
 
-        public string Token => "throw new NotImplementedException()";
-
-        public int SystemType => UserInfo.SystemType;
+        public int MenuType => (_accessor.HttpContext?.Request.Headers.ContainsKey("uniapp") ?? false) ? 1 : 0;
 
         public bool IsAuthenticated()
         {
-            return _accessor.HttpContext.User.Identity.IsAuthenticated;
+            return _accessor.HttpContext?.User?.Identity?.IsAuthenticated ?? false;
         }
-
 
         public string GetToken()
         {
-            return _accessor.HttpContext?.Request?.Headers["Authorization"].ObjToString().Replace("Bearer ", "");
+            string token = _cacheService.Get(UserId.ToString());
+            if (!string.IsNullOrEmpty(token)) { return token; }
+            return string.Empty;
+            //return _accessor.HttpContext?.Request?.Headers["Authorization"].ObjToString().Replace("Bearer ", "") ?? "";
         }
 
-        private UserInfo _userInfo { get; set; }
-        private UserInfo UserInfo
+        public void UpdateToke(string token)
         {
-            get
-            {
-                if (_userInfo != null)
-                    return _userInfo;
-
-                SqlSugarClient sqlSugarClient = new SqlSugarClient(new ConnectionConfig
-                {
-                    ConfigId = MainDb.CurrentDbConnId,
-                    DbType = MainDb.DbType,
-                    //ConnectionString = AppSettings.app(MainDb.ConnectionString).DecryptDES(AppSecret.DB),
-                    ConnectionString = AppSettings.app(MainDb.ConnectionString),
-                    IsAutoCloseConnection = true
-                });
-
-                dynamic userInfo = sqlSugarClient.Queryable(MainDb.UserTableName, "x").Where(MainDb.UserId, "=", UserId).Select(GetUserInfoSelectModels()).First();
-                if (userInfo != null)
-                {
-                    _userInfo = new UserInfo()
-                    {
-                        RoleId = userInfo.Role_Id,
-                        TenantId = userInfo.TenantId,
-                        SystemType = userInfo.SystemType,
-                        UserName = userInfo.UserName,
-                    };
-                    return _userInfo;
-                }
-
-                return new UserInfo();
-            }
+            _cacheService.AddOrUpdate(UserId.ToString(), token);
         }
 
         public bool IsSuperAdmin => IsRoleIdSuperAdmin(RoleId);
-
-        public List<Permissions> Permissions => throw new NotImplementedException();
-
-        public UserInfo GetCurrentUserInfo()
-        {
-            return UserInfo;
-        }
-
-        public List<SelectModel> GetUserInfoSelectModels()
-        {
-            List<SelectModel> selectModels = new List<SelectModel>()
-            {
-                new() {
-                    FieldName = MainDb.TenantId
-                },
-                new() {
-                    FieldName = MainDb.RoleId,
-                },
-                new() {
-                    FieldName = MainDb.SystemType
-                },
-                new() {
-                    FieldName = MainDb.UserName
-                }
-            };
-            return selectModels;
-        }
 
         public List<string> GetUserInfoFromToken(string ClaimType)
         {
@@ -149,18 +83,20 @@
             return new List<string>() { };
         }
 
-        //public MessageModel<string> MessageModel { get; set; }
-
         public IEnumerable<Claim> GetClaimsIdentity()
         {
-            var claims = _accessor.HttpContext.User.Claims.ToList();
-            var headers = _accessor.HttpContext.Request.Headers;
-            foreach (var header in headers)
+            if (_accessor.HttpContext != null)
             {
-                claims.Add(new Claim(header.Key, header.Value));
-            }
+                var claims = _accessor.HttpContext.User.Claims.ToList();
+                var headers = _accessor.HttpContext.Request.Headers;
+                foreach (var header in headers)
+                {
+                    claims.Add(new Claim(header.Key, header.Value));
+                }
 
-            return claims;
+                return claims;
+            }
+            return ArraySegment<Claim>.Empty;
         }
 
         public List<string> GetClaimValueByType(string ClaimType)
@@ -182,11 +118,9 @@
 
         public int RoleId { get; set; }
 
-        public int SystemType { get; set; }
-
         public string UserName { get; set; }
 
-        public int UserId {  get; set; }
+        public int UserId { get; set; }
 
         public string UserTrueName { get; set; }
 

--
Gitblit v1.9.3