Activities of "maliming"

hi

Exactly. The new template project uses OpenIddict as an OAuth2 server. So I recommend you to create it.

You should revert back until we release a new version.

hi

AbpOpenIddictProWebModule and OpenIddictProMenus(Volo.Abp.OpenIddict.Pro.Web.Menus) are exist onVolo.Abp.OpenIddict.Pro.Web package.

I recommend you to create a new project and check its code.

hi

We are using Azure B2C as an external login provider.

Please share your AddAzureB2CAuthentication provider code.

Thanks

bwt we have a document about the deployment to docker https://docs.abp.io/en/commercial/latest/startup-templates/application/deployment-docker-compose?UI=MVC&DB=EF&Tiered=Yes

AbpIdentityWebModule // Remain
AbpAccountPublicWebIdentityServerModule //Replace with AbpAccountPublicWebOpenIddictModule
AbpIdentityServerWebModule  //Replace with AbpOpenIddictProWebModule
IdentityMenuNames// Remain
AbpIdentityServerMenuNames// Replace with OpenIddictProMenus

I recommend you to create a new project and check its code.

hi

You should remove all Identity Server-related code.

You can create a new template project to compare the code.

hi

Thanks. I will ask our colleagues.

hi

A DataSeedContributor to add two roles and add all permissions to these roles.

You can give it a try.

https://docs.abp.io/en/abp/latest/Data-Seeding

using System;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Identity;
using Microsoft.Extensions.Options;
using Volo.Abp.Authorization.Permissions;
using Volo.Abp.Data;
using Volo.Abp.DependencyInjection;
using Volo.Abp.Guids;
using Volo.Abp.Identity;
using Volo.Abp.MultiTenancy;
using Volo.Abp.PermissionManagement;
using Volo.Abp.Uow;

public class MyDataSeedContributor : IDataSeedContributor, ITransientDependency
{
    protected IGuidGenerator GuidGenerator { get; }
    protected IIdentityRoleRepository RoleRepository { get; }
    protected IIdentityUserRepository UserRepository { get; }
    protected ILookupNormalizer LookupNormalizer { get; }
    protected IdentityUserManager UserManager { get; }
    protected IdentityRoleManager RoleManager { get; }
    protected ICurrentTenant CurrentTenant { get; }
    protected IOptions<IdentityOptions> IdentityOptions { get; }
    protected IPermissionDefinitionManager PermissionDefinitionManager { get; }
    protected IPermissionDataSeeder PermissionDataSeeder { get; }

    public MyDataSeedContributor(
        IGuidGenerator guidGenerator,
        IIdentityRoleRepository roleRepository,
        IIdentityUserRepository userRepository,
        ILookupNormalizer lookupNormalizer,
        IdentityUserManager userManager,
        IdentityRoleManager roleManager,
        ICurrentTenant currentTenant,
        IOptions<IdentityOptions> identityOptions,
        IPermissionDefinitionManager permissionDefinitionManager,
        IPermissionDataSeeder permissionDataSeeder)
    {
        GuidGenerator = guidGenerator;
        RoleRepository = roleRepository;
        UserRepository = userRepository;
        LookupNormalizer = lookupNormalizer;
        UserManager = userManager;
        RoleManager = roleManager;
        CurrentTenant = currentTenant;
        IdentityOptions = identityOptions;
        PermissionDefinitionManager = permissionDefinitionManager;
        PermissionDataSeeder = permissionDataSeeder;
    }

    [UnitOfWork]
    public virtual async Task SeedAsync(DataSeedContext context)
    {
        var tenantId = context.TenantId;
        using (CurrentTenant.Change(tenantId))
        {
            await IdentityOptions.SetAsync();

            // "Employer" and "Contractor" roles
            const string employerRoleName = "Employer";
            const string contractorRoleName = "Contractor";

            var employerRoleNameRole = await RoleRepository.FindByNormalizedNameAsync(LookupNormalizer.NormalizeName(employerRoleName));
            if (employerRoleNameRole == null)
            {
                employerRoleNameRole = new IdentityRole(GuidGenerator.Create(), employerRoleName, tenantId)
                {
                    IsPublic = true
                };

                (await RoleManager.CreateAsync(employerRoleNameRole)).CheckErrors();
            }

            var contractorRoleNameRole = await RoleRepository.FindByNormalizedNameAsync(LookupNormalizer.NormalizeName(contractorRoleName));
            if (contractorRoleNameRole == null)
            {
                contractorRoleNameRole = new IdentityRole(GuidGenerator.Create(), contractorRoleName, tenantId)
                {
                    IsPublic = true
                };

                (await RoleManager.CreateAsync(contractorRoleNameRole)).CheckErrors();
            }

            var yourUser = await UserRepository.FindAsync(Guid.NewGuid());//your user id

            (await UserManager.AddToRoleAsync(yourUser, employerRoleName)).CheckErrors();
            (await UserManager.AddToRoleAsync(yourUser, contractorRoleName)).CheckErrors();

            var multiTenancySide = CurrentTenant.GetMultiTenancySide();
            var allPermissionNames = (await PermissionDefinitionManager.GetPermissionsAsync())
                .Where(p => p.MultiTenancySide.HasFlag(multiTenancySide))
                .Select(p => p.Name)
                .ToArray();

            await PermissionDataSeeder.SeedAsync(
                RolePermissionValueProvider.ProviderName,
                employerRoleName,
                allPermissionNames,
                context?.TenantId
            );

            await PermissionDataSeeder.SeedAsync(
                RolePermissionValueProvider.ProviderName,
                contractorRoleName,
                allPermissionNames,
                context?.TenantId
            );
        }
    }
}

hi

Can you try to use http://backoffice-authserver to replace the http://localhost:44395?

Because your container can't reach the http://localhost:44395 in docker.

Showing 6331 to 6340 of 12925 entries
Boost Your Development
ABP Live Training
Packages
See Trainings
Mastering ABP Framework Book
The Official Guide
Mastering
ABP Framework
Learn More
Mastering ABP Framework Book
Made with ❤️ on ABP v10.8.0-preview. Updated on November 11, 2026, 08:10
1
ABP Assistant
🔐 You need to be logged in to use the chatbot. Please log in first.