Activities of "enisn"

Thanks for your advice.

I've made some adjustments to my architecture as follows:

  • I now have an ABP microservice solution that should handle authentication.
  • Additionally, I've set up another layered ABP solution for each used service.

For the microservice solution, I'll use a shared database, and for each layered ABP solution, I'll create a separate database for each tenant.

Is this approach okay for now?

Yes it's ok. The limitation in the microservice scenario is Inbox/Outbox pattern. If your database doesn't have Inbox or Outbox events table, you can separate however you wish. But while using outbox pattern like in microservice, all the events have to be processed in the same ouw and transaction, and events does not have tenant data or they cannot be separated into databases without handling them and checking which tenant uses which database. So in a summary, only limitation is Inbox/Outbox pattern. If you application doesn't use it, you can separate without any limitation

Yes we reproduced it but the team isn't sure about supporting multi-level child entities. After decision is made, I'll inform you.

Hi,

It's a full-featured development that depened on some business deicions. Please start building on your own and ask the problems you faced during the development, then we can help on a specic case

Answer

Hi,

Our team could not reproduce the problem. Can you share your AppService or Controller endpoint code in C#?

Hi,

Can you check load-balancer or proxy server to make sure Headers are not modified. Nginx or similar tools does not expose all the headers by default. If there is an option on azure please check or if you have access to configuration, you can check and ensure the headers are passed without any restrictions.

Sometimes, your application does not determine the CORS policy but your proxy server does. If you use Cloudflare, please check it too

I delivered your report to the ABP Suite team currently,

They'll investigate and fix it.

There are a couple of version updates in 4 days: https://www.nuget.org/packages/Volo.Abp.Studio.Cli/0.9.25#versions-body-tab

But it supports only .NET9, so you cannot use it without .NET 9 runtime.

...Volo.Abp.Studio.Cli was working 4 days ago, then stopped today?

Probably you're using an older version that targets :NET8 and you couldn't update it since newer version cannot be installed. The older version were keep running on your system I think.

I checked on the nuget and it seems .NET 9 version is related 3 days ago: https://www.nuget.org/packages/Volo.Abp.Studio.Cli/0.9.24

And the last verison that can work with .NET8 is 0.9.23

Answer

Hi sghorakavi@cpat.com,

Thanks for reaching out with your issue. It sounds like there are a few possible areas we need to investigate to resolve the problem. Here are my suggestions:

Authentication Configuration

First, ensure that your ABP application’s authentication configuration exactly matches the settings in PingOne. This includes the Client ID, Client Secret, Authority URL, and Response Type. Misconfigurations here could lead to improper redirection behaviors.

Claim Mapping

Double-check the claim mapping in your ABP application. Ensure that user attributes from PingOne are being correctly translated and recognized by your ABP application. For example, make sure you have the correct mapping for the email claim as you've already started to do:

options.ClaimActions.MapUniqueJsonKey(ClaimTypes.Email, "email");

Debugging and Logs

Review the logs you provided. It appears there's an error with the tracking of the IdentityUserLogin entity. This usually happens when two instances of the same entity are being tracked simultaneously. To debug this issue:

  • Ensure that you are not inadvertently creating duplicate instances of the same entity.

  • Enable sensitive data logging in your DbContext options to get more detailed error information:

options.EnableSensitiveDataLogging();

Handling External Login Event

To handle the external login event correctly, you should ensure that once the user logs in via PingOne, the information is processed appropriately in the ABP system. Here's how you can handle the OnTokenValidated and OnUserInformationReceived events

options.Events = new OpenIdConnectEvents
{
    OnTokenValidated = context =>
    {
        // Add logic to handle when token is validated
        return Task.CompletedTask;
    },
    OnUserInformationReceived = context =>
    {
        options.ClaimActions.MapUniqueJsonKey(ClaimTypes.Email, "email");
        // Additional processing
        return Task.CompletedTask;
    }
};

Resolving Entity Tracking Issue

The InvalidOperationException regarding the IdentityUserLogin entity being already tracked suggests that there might be an issue with entity tracking in your application. You should ensure that only one instance of the entity is being tracked at any given time:

public async Task UpdateLoginAsync(UserLoginInfo loginInfo)
{
    var existingLogin = await _userManager.FindByLoginAsync(loginInfo.LoginProvider, loginInfo.ProviderKey);
    if (existingLogin != null)
    {
        // Detach the existing login to prevent tracking issues
        _dbContext.Entry(existingLogin).State = EntityState.Detached;
    }

    var newLogin = new IdentityUserLogin { LoginProvider = loginInfo.LoginProvider, ProviderKey = loginInfo.ProviderKey };
    await _dbContext.UserLogins.AddAsync(newLogin);
    await _dbContext.SaveChangesAsync();
}

This approach ensures that the existing login is detached before adding a new one to prevent tracking conflicts.

Verify Return URL

Ensure that the return URL is correctly set after successful authentication to guide the user to the intended login page rather than logging out.

If you follow these steps and still encounter issues, please provide more detailed logs, and we will continue troubleshooting from there.


You have to determine the problem in the application/configuration and then we can take an action for the solution.

Hi,

The first error:

Is related dotnet runtime mismatch. So that means, you don't have the target framework runtime of the CLI. You're on .NET 8, but CLI requires .NET9 etc. You can pass --version parameter. (You already did that)

The second error:

is multiple installed CLI. ABP moved to a new CLI named Volo.Abp.Studio.Cli. They both uses the same command name: abp. They cannot be installed at the same time since they conflict.

Here are my 2 suggestions:

Installing .NET 9 runtime

  • You can install .NET 9 runtime on your machine, to use Volo.Abp.Studio.CLi without a problem. https://dotnet.microsoft.com/en-us/download/dotnet/9.0

-- OR --

Installing old CLI

You can uninstall the new CLI and install the old one:

dotnet tool uninstall -g volo.Abp.Studio.Cli
dotnet tool update -g volo.abp.cli --version 8.3.4

Hi,

We received your ticket. Our Angular team will help you on this topic soon

Showing 151 to 160 of 779 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.1.0-preview. Updated on November 03, 2025, 07:01