示例#1
0
            public Task ContributeAsync(AbpClaimsPrincipalContributorContext context)
            {
                var claimsIdentity = context.ClaimsPrincipal.Identities.FirstOrDefault(x => x.AuthenticationType == TestAuthenticationType)
                                     ?? new ClaimsIdentity(TestAuthenticationType);

                claimsIdentity.AddOrReplace(new Claim(ClaimTypes.Version, "2.0"));

                context.ClaimsPrincipal.AddIdentityIfNotContains(claimsIdentity);

                return(Task.CompletedTask);
            }
        public virtual async Task <ClaimsPrincipal> CreateAsync()
        {
            using (var scope = ServiceScopeFactory.CreateScope())
            {
                var claimsPrincipal = new ClaimsPrincipal(new ClaimsIdentity());

                var context = new AbpClaimsPrincipalContributorContext(claimsPrincipal, scope.ServiceProvider);

                foreach (var contributorType in Options.Contributors)
                {
                    var contributor = (IAbpClaimsPrincipalContributor)scope.ServiceProvider.GetRequiredService(contributorType);
                    await contributor.ContributeAsync(context);
                }

                return(claimsPrincipal);
            }
        }