From 9476b8501808b77ad44ca76edc5b04d863de3857 Mon Sep 17 00:00:00 2001 From: liangshiwei Date: Wed, 13 Jan 2021 11:30:47 +0800 Subject: [PATCH] Add serviceProvider to ClaimsIdentityContext --- .../Volo/Abp/Security/Claims/ClaimsIdentityContext.cs | 10 ++++++++-- .../Volo/Abp/Identity/AbpUserClaimsPrincipalFactory.cs | 4 ++-- 2 files changed, 10 insertions(+), 4 deletions(-) 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);