/// <summary>
        /// Cookie验证通过时,从OnlineUser缓存或数据库查找用户的最新信息附加到有效的 ClaimIdentity 上
        /// </summary>
        /// <param name="context"></param>
        /// <returns></returns>
        public override Task ValidatePrincipal(CookieValidatePrincipalContext context)
        {
            ClaimsPrincipal user     = context.Principal;
            ClaimsIdentity  identity = user.Identity as ClaimsIdentity;

            IUserClaimsProvider accessClaimsProvider = context.HttpContext.RequestServices.GetService <IUserClaimsProvider>();

            return(accessClaimsProvider.RefreshIdentity(identity));
        }
예제 #2
0
        /// <summary>
        /// Token验证通过时,从OnlineUser缓存或数据库查找用户的最新信息附加到有效的 ClaimPrincipal 上
        /// </summary>
        /// <param name="context"></param>
        /// <returns></returns>
        public override async Task TokenValidated(TokenValidatedContext context)
        {
            ClaimsPrincipal user     = context.Principal;
            ClaimsIdentity  identity = user.Identity as ClaimsIdentity;

            IUserClaimsProvider accessClaimsProvider = context.HttpContext.RequestServices.GetService <IUserClaimsProvider>();
            OperationResult <ClaimsIdentity> result  = await accessClaimsProvider.RefreshIdentity(identity);

            if (!result.Succeeded)
            {
                context.Fail(result.Message);
            }
        }