Create default ClaimsIdentity for AbpClaimsPrincipalFactory.

pull/8153/head
maliming 5 years ago
parent f6dfa8b6a3
commit 36e3cb1c82

@ -8,6 +8,8 @@ namespace Volo.Abp.Security.Claims
{
public class AbpClaimsPrincipalFactory : IAbpClaimsPrincipalFactory, ITransientDependency
{
public static string AuthenticationType => "Abp.Application";
protected IServiceScopeFactory ServiceScopeFactory { get; }
protected AbpClaimsPrincipalFactoryOptions Options { get; }
@ -23,7 +25,10 @@ namespace Volo.Abp.Security.Claims
{
using (var scope = ServiceScopeFactory.CreateScope())
{
var claimsPrincipal = existsClaimsPrincipal ?? new ClaimsPrincipal();
var claimsPrincipal = existsClaimsPrincipal ?? new ClaimsPrincipal(new ClaimsIdentity(
AuthenticationType,
AbpClaimTypes.UserName,
AbpClaimTypes.Role));
var context = new AbpClaimsPrincipalContributorContext(claimsPrincipal, scope.ServiceProvider);

@ -44,12 +44,12 @@ namespace Volo.Abp.Security.Claims
[Fact]
public async Task Create_With_Exists_ClaimsPrincipal()
{
var claimsPrincipal = new ClaimsPrincipal(new ClaimsIdentity(TestAuthenticationType, ClaimTypes.NameIdentifier, ClaimTypes.Role));
claimsPrincipal.Identities.First().AddClaim(new Claim(ClaimTypes.NameIdentifier, "123"));
var claimsPrincipal = new ClaimsPrincipal(new ClaimsIdentity(TestAuthenticationType, ClaimTypes.Name, ClaimTypes.Role));
claimsPrincipal.Identities.First().AddClaim(new Claim(ClaimTypes.Name, "123"));
claimsPrincipal.Identities.First().AddClaim(new Claim(ClaimTypes.Role, "admin"));
await _abpClaimsPrincipalFactory.CreateAsync(claimsPrincipal);
claimsPrincipal.Claims.ShouldContain(x => x.Type == ClaimTypes.NameIdentifier && x.Value == "123");
claimsPrincipal.Claims.ShouldContain(x => x.Type == ClaimTypes.Name && x.Value == "123");
claimsPrincipal.Claims.ShouldContain(x => x.Type == ClaimTypes.Role && x.Value == "admin");
claimsPrincipal.Claims.ShouldContain(x => x.Type == ClaimTypes.Email && x.Value == "admin2@abp.io");
claimsPrincipal.Claims.ShouldNotContain(x => x.Type == ClaimTypes.Email && x.Value == "admin@abp.io");

Loading…
Cancel
Save