using Bowin.Common.Cache; using Bowin.Common.JSON; using Bowin.Common.Utility; using Microsoft.AspNetCore.Http; using System; using System.Collections.Generic; using System.Security.Claims; using System.Text; namespace Bowin.Common.ServiceToken { public class JwtUser { public static T Current { get { var contextUser = HttpHelper.Accessor.HttpContext.User; if (contextUser == null) { return default(T); } var userCliam = contextUser.FindFirst(ClaimTypes.Name); //contextUser.FindFirst(ClaimTypes.UserData); if (userCliam == null) { return default(T); } var userJson = (string)CacheHelper.Get("uinfo_" + userCliam.Value); if (string.IsNullOrEmpty(userJson)) { var userInfo = JwtHelper.GetRefreshUserFunc.DynamicInvoke(new Guid(userCliam.Value)); if (userInfo == null) { return default(T); } userJson = userInfo.ToJson(); CacheHelper.Add("uinfo_" + userCliam.Value, userJson); } return userJson.ToObject(); } } } }