Browse Source

Add serviceProvider to ClaimsIdentityContext

pull/7165/head
liangshiwei 6 years ago
parent
commit
9476b85018
  1. 10
      framework/src/Volo.Abp.Security/Volo/Abp/Security/Claims/ClaimsIdentityContext.cs
  2. 4
      modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/AbpUserClaimsPrincipalFactory.cs

10
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 namespace Volo.Abp.Security.Claims
{ {
@ -6,9 +7,14 @@ namespace Volo.Abp.Security.Claims
{ {
public ClaimsIdentity ClaimsIdentity { get; } public ClaimsIdentity ClaimsIdentity { get; }
public ClaimsIdentityContext(ClaimsIdentity claimsIdentity) public IServiceProvider ServiceProvider { get; }
public ClaimsIdentityContext(
ClaimsIdentity claimsIdentity,
IServiceProvider serviceProvider)
{ {
ClaimsIdentity = claimsIdentity; ClaimsIdentity = claimsIdentity;
ServiceProvider = serviceProvider;
} }
} }
} }

4
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())); identity.AddIfNotContains(new Claim(AbpClaimTypes.EmailVerified, user.EmailConfirmed.ToString()));
var context = new ClaimsIdentityContext(identity);
using (var scope = ServiceScopeFactory.CreateScope()) using (var scope = ServiceScopeFactory.CreateScope())
{ {
var context = new ClaimsIdentityContext(identity, scope.ServiceProvider);
foreach (var contributorType in ClaimOptions.ClaimsIdentityContributors) foreach (var contributorType in ClaimOptions.ClaimsIdentityContributors)
{ {
var contributor = (IClaimsIdentityContributor) scope.ServiceProvider.GetRequiredService(contributorType); var contributor = (IClaimsIdentityContributor) scope.ServiceProvider.GetRequiredService(contributorType);

Loading…
Cancel
Save