asp.net core 3.1 登录用的 ClaimsPrincipal User ,一般只有在 controller里才可以使用;但是为了方便抽出公共方法,则需要在单独的类里使用到 User.这时候,就需要先获取到HttpContext才可以用User。代码如下:
AppHttpContext.Current.User
详细代码如下:
/// <summary> /// 沐雪多商户版小程序商城系统 /// </summary> public class ControllerCommFun { public ControllerCommFun() { } public TenantLoginResp CurrentUser { get { TenantLoginResp currentUser = new TenantLoginResp(); if (AppHttpContext.Current.User.Identity.IsAuthenticated) { var claimIdentity = (ClaimsIdentity)AppHttpContext.Current.User.Identity; string key = claimIdentity.FindFirst("tenant_tokenid").Value; currentUser.id = LoginCredentials.TenantDecodeRedisKeyOfUserId(key); currentUser.user_name = claimIdentity.FindFirst("tenant_user_name").Value; currentUser.using_type = claimIdentity.FindFirst("tenant_using_type").Value; currentUser.role_id = ConvertHelper.LongParse(claimIdentity.FindFirst("tenant_role_id").Value, 0); } return currentUser; } } }