From 3ec3e0c1913bc902dbbcaeae2959897df6212ec2 Mon Sep 17 00:00:00 2001
From: hutongqing <hutongqing@hnkhzn.com>
Date: 星期四, 28 十一月 2024 15:41:23 +0800
Subject: [PATCH] 更新
---
WIDESEAWCS_Server/WIDESEAWCS_Core/HttpContextUser/AspNetUser.cs | 57 ++++++++++++++++++++++++++++++++++++++++++++++++++++-----
1 files changed, 52 insertions(+), 5 deletions(-)
diff --git a/WIDESEAWCS_Server/WIDESEAWCS_Core/HttpContextUser/AspNetUser.cs b/WIDESEAWCS_Server/WIDESEAWCS_Core/HttpContextUser/AspNetUser.cs
index e91a216..3c9aaeb 100644
--- a/WIDESEAWCS_Server/WIDESEAWCS_Core/HttpContextUser/AspNetUser.cs
+++ b/WIDESEAWCS_Server/WIDESEAWCS_Core/HttpContextUser/AspNetUser.cs
@@ -9,8 +9,10 @@
using System.Security.Claims;
using System.Text;
using System.Threading.Tasks;
+using WIDESEAWCS_Core.Authorization;
using WIDESEAWCS_Core.Const;
using WIDESEAWCS_Core.DB;
+using WIDESEAWCS_Core.Extensions;
using WIDESEAWCS_Core.Helper;
using WIDESEAWCS_Core.Seed;
using ICacheService = WIDESEAWCS_Core.Caches.ICacheService;
@@ -49,9 +51,39 @@
public string GetToken()
{
- string token = _cacheService.Get(UserId.ToString());
+ string token = _accessor.HttpContext?.Request?.Headers["Authorization"].ObjToString().Replace("Bearer ", "") ?? "";
+ if (!token.IsNullOrEmpty())
+ {
+ return token;
+ }
+ if (_accessor.HttpContext?.IsSuccessSwagger() == true)
+ {
+ token = _accessor.HttpContext.GetSuccessSwaggerJwt();
+ if (token.IsNotEmptyOrNull())
+ {
+ //UserInfo userInfo = JwtHelper.SerializeJwt(token);
+ //if (userInfo.UserId > 0)
+ //{
+ // return token;
+ //}
+ 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;
+ }
+ }
+ token = _cacheService.Get(UserId.ToString());
if (!string.IsNullOrEmpty(token)) { return token; }
- return string.Empty;
+ 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 ", "") ?? "";
}
@@ -73,9 +105,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>() { };
@@ -97,6 +130,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