asp.net core 3.1 ClaimsPrincipal User 灵活使用

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;
            }
        }

    }
原文地址:https://www.cnblogs.com/puzi0315/p/13341915.html