public Task ContributeAsync(AbpClaimsPrincipalContributorContext context)
    {
        var identity = context.ClaimsPrincipal.Identities.FirstOrDefault();

        if (identity != null)
        {
            var options       = context.ServiceProvider.GetRequiredService <IOptions <IdentityOptions> >().Value;
            var usernameClaim = identity.FindFirst(options.ClaimsIdentity.UserNameClaimType);
            if (usernameClaim != null)
            {
                identity.AddIfNotContains(new Claim(OpenIddictConstants.Claims.PreferredUsername, usernameClaim.Value));
                identity.AddIfNotContains(new Claim(JwtRegisteredClaimNames.UniqueName, usernameClaim.Value));
            }

            var httpContext = context.ServiceProvider.GetRequiredService <IHttpContextAccessor>().HttpContext;
            if (httpContext != null)
            {
                var clientId = httpContext.GetOpenIddictServerRequest()?.ClientId;
                if (clientId != null)
                {
                    identity.AddClaim(OpenIddictConstants.Claims.ClientId, clientId, OpenIddictConstants.Destinations.AccessToken);
                }
            }
        }

        return(Task.CompletedTask);
    }
            public Task ContributeAsync(AbpClaimsPrincipalContributorContext context)
            {
                var claimsIdentity = context.ClaimsPrincipal.Identities.First(x => x.AuthenticationType == IdentityAuthenticationType);

                claimsIdentity.AddOrReplace(new Claim(ClaimTypes.Uri, "www.abp.io"));
                claimsIdentity.AddOrReplace(new Claim(ClaimTypes.Email, "*****@*****.**"));

                context.ClaimsPrincipal.AddIdentityIfNotContains(claimsIdentity);

                return(Task.CompletedTask);
            }
Exemplo n.º 3
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 async Task ContributeAsync(AbpClaimsPrincipalContributorContext context)
        {
            var userManager = context.ServiceProvider.GetRequiredService <IdentityUserManager>();
            var user        = await userManager.GetUserAsync(context.ClaimsPrincipal);

            if (user != null)
            {
                var preferredName = user.Surname + user.Name;
                var identity      = context.ClaimsPrincipal.Identities.FirstOrDefault();
                identity.AddOrReplace(new Claim(JwtClaimTypes.PreferredUserName, preferredName));
            }
        }
Exemplo n.º 5
0
    public virtual async Task <ClaimsPrincipal> CreateAsync(ClaimsPrincipal existsClaimsPrincipal = null)
    {
        using (var scope = ServiceScopeFactory.CreateScope())
        {
            var claimsPrincipal = existsClaimsPrincipal ?? new ClaimsPrincipal(new ClaimsIdentity(
                                                                                   AuthenticationType,
                                                                                   AbpClaimTypes.UserName,
                                                                                   AbpClaimTypes.Role));

            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);
        }
    }