diff --git a/framework/src/Volo.Abp.Security/Volo/Abp/Security/Claims/ClaimsIdentityContext.cs b/framework/src/Volo.Abp.Security/Volo/Abp/Security/Claims/ClaimsIdentityContext.cs index c552379599..9b2d2c3169 100644 --- a/framework/src/Volo.Abp.Security/Volo/Abp/Security/Claims/ClaimsIdentityContext.cs +++ b/framework/src/Volo.Abp.Security/Volo/Abp/Security/Claims/ClaimsIdentityContext.cs @@ -1,4 +1,5 @@ -using System.Security.Claims; +using System; +using System.Security.Claims; namespace Volo.Abp.Security.Claims { @@ -6,9 +7,14 @@ namespace Volo.Abp.Security.Claims { public ClaimsIdentity ClaimsIdentity { get; } - public ClaimsIdentityContext(ClaimsIdentity claimsIdentity) + public IServiceProvider ServiceProvider { get; } + + public ClaimsIdentityContext( + ClaimsIdentity claimsIdentity, + IServiceProvider serviceProvider) { ClaimsIdentity = claimsIdentity; + ServiceProvider = serviceProvider; } } } diff --git a/modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/AbpUserClaimsPrincipalFactory.cs b/modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/AbpUserClaimsPrincipalFactory.cs index bcf06644b2..b6fe1686a7 100644 --- a/modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/AbpUserClaimsPrincipalFactory.cs +++ b/modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/AbpUserClaimsPrincipalFactory.cs @@ -71,10 +71,10 @@ namespace Volo.Abp.Identity identity.AddIfNotContains(new Claim(AbpClaimTypes.EmailVerified, user.EmailConfirmed.ToString())); - var context = new ClaimsIdentityContext(identity); - using (var scope = ServiceScopeFactory.CreateScope()) { + var context = new ClaimsIdentityContext(identity, scope.ServiceProvider); + foreach (var contributorType in ClaimOptions.ClaimsIdentityContributors) { var contributor = (IClaimsIdentityContributor) scope.ServiceProvider.GetRequiredService(contributorType);