From c9fc48e1d1c9d8e7828bbe045d23e2c7479e7613 Mon Sep 17 00:00:00 2001 From: dengjunjie <dengjunjie@hnkhzn.com> Date: 星期二, 14 一月 2025 00:10:28 +0800 Subject: [PATCH] 1 --- 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_Core/HttpContextUser/AspNetUser.cs | 59 +++++++++++++++++++++++++++++++++++++++++++++++++---------- 1 files changed, 49 insertions(+), 10 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..87092e2 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,9 +47,35 @@ public string GetToken() { - string token = _cacheService.Get(UserId.ToString()); + string token = ""; + token = _cacheService.Get(UserId.ToString()); if (!string.IsNullOrEmpty(token)) { return token; } - return string.Empty; + token = _accessor.HttpContext?.Request?.Headers["Authorization"].ObjToString().Replace("Bearer ", "") ?? ""; + if (!token.IsNullOrEmpty()) + { + return token; + } + //if (_accessor.HttpContext?.IsSuccessSwagger() ?? false) + //{ + // token = _accessor.HttpContext.GetSuccessSwaggerJwt(); + // if (token.IsNotEmptyOrNull()) + // { + // List<Claim> claims1 = _accessor.HttpContext.User.Claims.ToList(); + // if (_accessor.HttpContext.User.Claims.Any(s => s.Type == JwtRegisteredClaimNames.Jti)) + // { + // return token; + // } + + // var claims = new ClaimsIdentity(GetClaimsIdentity(token)); + // _accessor.HttpContext.User.AddIdentity(claims); + // return token; + // } + //} + return token; + + // string token = _cacheService.Get(UserId.ToString()); + //if (!string.IsNullOrEmpty(token)) { return token; } + //return string.Empty; //return _accessor.HttpContext?.Request?.Headers["Authorization"].ObjToString().Replace("Bearer ", "") ?? ""; } @@ -63,6 +85,8 @@ } public bool IsSuperAdmin => IsRoleIdSuperAdmin(RoleId); + + public bool IsHighestRole => UserId == 1; public List<string> GetUserInfoFromToken(string ClaimType) { @@ -75,9 +99,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 +124,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