Activities of "maliming"

hi

Can you share a gif? Thanks.

hi

You can change CookieRequestCultureProvider.DefaultCookieName to your cookies name.

https://gist.github.com/maliming/b1ea80d68982a5b7064d7df6bafa89f5

hi

Migrating from IdentityServer to OpenIddict Step by Step Guide

https://docs.abp.io/en/commercial/latest/migration-guides/openIddict-step-by-step

hi

Can you share the logs when using tenant.domain.com?

Especially the url in the email.

Temporary solution:

{
    text: l('Edit'),
    visible: abp.auth.isGranted(
        'AbpIdentity.Users.Update'
    ),
    action: function (data) {
        _editModal.open({
            id: data.record.id,
        });
    },
},
{
    displayNameHtml: true,
    text: function (data) {
        return '<li><hr class="dropdown-divider"></li>';
    }
},
{
    text: l('Permissions'),
    visible: abp.auth.isGranted(
        'AbpIdentity.Users.ManagePermissions'
    ),
    action: function (data) {
        _permissionsModal.open({
            providerName: 'U',
            providerKey: data.record.id,
            providerKeyDisplayName: data.record.userName
        });
    },
}

hi

Please upgrade the Blazorise and Microsoft.AspNetCore.Components.WebAssembly packages based on the errors.

Remember to run abp bundle command on blazor project to update the js and css.

hi @WilliamT

The rowAction doesn't support adding divider now. We will support it in the next version.

https://github.com/abpframework/abp/issues/18377

hi

You can add more scopes by claimsPrincipal.SetScopes("Your_Scope);

hi

Can you try to use the 2.4.3 as the lepton version.

You can also make it simple.

public class PasswordlessExtensionGrant : ITokenExtensionGrant
{
    public const string ExtensionGrantName = "PasswordlessExtensionGrant";
    public       string Name => ExtensionGrantName;

    public async Task<IActionResult> HandleAsync(ExtensionGrantContext context)
    {
        // get phone number from request
        var phoneNumber = context.Request.GetParameter("phoneNumber")?.Value?.ToString();

        if (string.IsNullOrEmpty(phoneNumber))
        {
            return new ForbidResult(new[] { OpenIddictServerAspNetCoreDefaults.AuthenticationScheme },
                                    properties: new AuthenticationProperties(new Dictionary<string, string>
                                    {
                                        [OpenIddictServerAspNetCoreConstants.Properties.Error] =
                                            OpenIddictConstants.Errors.InvalidGrant
                                    }!));
        }

        // retrieve user
        var userRepository = context.HttpContext.RequestServices.GetRequiredService<IRepository<IdentityUser, Guid>>();
        var user           = await userRepository.FirstOrDefaultAsync(x => x.PhoneNumber == phoneNumber);

        if (user == null)
        {
            return new ForbidResult(new[] { OpenIddictServerAspNetCoreDefaults.AuthenticationScheme },
                                    properties: new AuthenticationProperties(new Dictionary<string, string>
                                    {
                                        [OpenIddictServerAspNetCoreConstants.Properties.Error] = OpenIddictConstants.Errors.InvalidGrant
                                    }!));
        }

        var principal =  await context.HttpContext.RequestServices.GetRequiredService<IUserClaimsPrincipalFactory<IdentityUser>>().CreateAsync(user);

        // retrieve generic user claims
        var userClaimsPrincipalFactory = context.HttpContext.RequestServices.GetRequiredService<IUserClaimsPrincipalFactory<IdentityUser>>();
        var claimsPrincipal            = await userClaimsPrincipalFactory.CreateAsync(user);

        claimsPrincipal.SetScopes(principal.GetScopes());
        claimsPrincipal.SetResources(await GetResourcesAsync(context, principal.GetScopes()));

        // retrieve abp user claims
        var abpClaimsPrincipalFactory = context.HttpContext.RequestServices.GetRequiredService<IAbpClaimsPrincipalFactory>();
        var abpClaimsPrincipal        = await abpClaimsPrincipalFactory.CreateAsync(claimsPrincipal);

        await context.HttpContext.RequestServices.GetRequiredService<AbpOpenIddictClaimsPrincipalManager>().HandleAsync(context.Request, abpClaimsPrincipal);

        return new SignInResult(OpenIddictServerAspNetCoreDefaults.AuthenticationScheme, abpClaimsPrincipal);
    }


    private async Task<IEnumerable<string>> GetResourcesAsync(ExtensionGrantContext context, ImmutableArray<string> scopes)
    {
        var resources = new List<string>();
        if (!scopes.Any())
        {
            return resources;
        }

        await foreach (var resource in context.HttpContext.RequestServices.GetRequiredService<IOpenIddictScopeManager>().ListResourcesAsync(scopes))
        {
            resources.Add(resource);
        }

        return resources;
    }
}
Showing 5901 to 5910 of 11556 entries
Learn More, Pay Less
33% OFF
All Trainings!
Get Your Deal
Mastering ABP Framework Book
The Official Guide
Mastering
ABP Framework
Learn More
Mastering ABP Framework Book
Made with ❤️ on ABP v10.1.0-preview. Updated on December 17, 2025, 07:08
1
ABP Assistant
🔐 You need to be logged in to use the chatbot. Please log in first.