Activities of "dmeagor"

Thanks I'll taker another look, it may be that we have made a mistake with the merging of the IDS MVC pages as we have several overrides setup and may be using some outdates files.

Regarding the flow, I took another bash at designing something that matches how ABP handles tenants.

For standard logins logins I've moved password to a later page once the tenant is identified, either by the custom tenant handler or by the tenant selection page.

Are there any plans to implement a tenant selector page like this? This seems like too much custom code to safely add to our project without causing a security issues if we ever failed to merge changes correctly. If not, any idea how best to approach this?

  • ABP Framework version: latest
  • UI type: identity server MVC

Abp's SSO implementation is completely broken and requires users to register using the login page. Existing users cannot login by SSO at all. Its a bug that I reported over a year ago and exists on your own website. There isn't even an SSO option on the register page. It is essentially unusable in its current form.

Standard SSO flow would be as below. Do you intend to fix this any time soon, if not how can I do this myself?

SSO authenticated

  • single user email exists
    • Login to matching account
  • multiple user emails exist
    • display tenant selector and login.
  • email does not exist
    • Register new account

Example.

  • ABP Framework version: v5.11
  • UI type: Angular
  • DB provider: EF Core
  • Tiered (MVC) or Identity Server Separated (Angular): yes

To allow our users to close their accounts properly, I set the tenant activation state to Passive, then try to sign them out with OAuthService.logOut, but get the following view. All pages in the identity server MVC show this message until the cookie expires.

Reopening as the bot appears to have closed this issue before resolution.

ABP Framework version: 5.1.1 User Interface: Angular database provider: EF Core

When using the IdentityUserController and MaxUserCount has been set, the tenant is at the maximum number of users. Updating the details of an existing user is not possible.

If there a way to bypass this quickly?

Thanks in advance :)

[INF] Route matched with {area = "identity", controller = "User", action = "Update", page = ""}. Executing controller action with signature System.Threading.Tasks.Task1[Volo.Abp.Identity.IdentityUserDto] UpdateAsync(System.Guid, Volo.Abp.Identity.IdentityUserUpdateDto) on controller Volo.Abp.Identity.IdentityUserController (Volo.Abp.Identity.Pro.HttpApi). 

[WRN] ---------- RemoteServiceErrorInfo ---------- 

Reached maximum allowed user count! This tenant is allowed to have a maximum of 3 users. 

[WRN] Exception of type 'Volo.Abp.BusinessException' was thrown.

  Volo.Abp.BusinessException: Exception of type 'Volo.Abp.BusinessException' was thrown
  . at Volo.Abp.Identity.MaxUserCountValidator.CheckMaxUserCountAsync()
   at Volo.Abp.Identity.MaxUserCountValidator.ValidateAsync(UserManager1 manager, IdentityUser user)
at Microsoft.AspNetCore.Identity.UserManager1.ValidateUserAsync(TUser user)
 at Microsoft.AspNetCore.Identity.UserManager1.UpdateUserAsync(TUser user)

Just tried now and its working, but about an hour ago was still reporting error like this.

11:00:01     C:\Program Files\dotnet\sdk\5.0.401\NuGet.targets(131,5): error : Failed to download package 'Newtonsoft.Json.12.0.2' from 'https://nuget.abp.io/[key removed]/v3/package/newtonsoft.json/12.0.2/newtonsoft.json.12.0.2.nupkg'.
11:00:01     C:\Program Files\dotnet\sdk\5.0.401\NuGet.targets(131,5): error : Response status code does not indicate success: 409 (Conflict).

and...

C:\Program Files\dotnet\sdk\5.0.401\NuGet.targets(131,5): error : The given key '(Volo.Abp.Sms, 4.4.0)' was not present in the dictionary.

Have you fixed anything within the hour or is this a tempremental issue?

We had the same thing appear ourselves earlier, our nuget source is exactly as you have supplied. Also all of the abp.nuget.io packages are returning 403's now (the api keys are still in the url as before)

Looks like the polly package is hosted by abp not nuget. we have the same issue with several other packages.

This appears to be an ongoing issue.

Our builds are faiing with various errors related to your private nuget feed.

Examples (taken from teamcity logs)

C:\Program Files\dotnet\sdk\5.0.401\NuGet.targets(131,5): error : The feed 'ABP Commercial NuGet Source [https://nuget.abp.io/{api-key}/v3/index.json]' lists package 'Newtonsoft.Json.12.0.2' but multiple attempts to download the nupkg have failed. The feed is either invalid or required packages were removed while the current operation was in progress. Verify the package exists on the feed and try again.

Also getting issues with Polly (403) nuget package

I'm not sure if this is the same thing but as of yesterday for no reason at all our teamcity build process started generating these errors without any changes (verified) to our github repo or config so it appears to be an external change/update on your feed.

C:\Program Files\dotnet\sdk\5.0.400\Sdks\Microsoft.NET.Sdk.BlazorWebAssembly\targets\Microsoft.NET.Sdk.BlazorWebAssembly.Current.targets(564,5): error MSB6006: "C:\Program Files\dotnet" exited with code 1.

Thanks for your help with this!

Recreate the dbContext object inside of the loop for each iteration ( each tenant )

Database context instance is expensive, we should reuse

Are you sure about that? Maybe refresh after 500 tenants. Seeding tenants takes 300ms+ after the first few thousand. Opening dbContext should take <10ms.

I suggest creating a testdb with 20k tenants and running some tests on the migrator.

> Repository is abstract, you can do it in your project. see : https://github.com/abpframework/abp/issues/9652

Surely I can't disabled change tracking for ABP seed code though, not sure that would be safe even if I could. We do not yet have our own seeding.

  • ABP Framework version: Any
  • UI type: Any
  • DB provider: EF Core
  • Tiered (MVC) or Identity Server Separated (Angular): Any

I have previously reported this as a bug here. https://github.com/abpframework/abp/issues/9467

ABP EFCore migrations are currently running N+1 loops with the tenant seeding without recreating the dbContext instance for each loop. This is against microsoft's EFCore guidence and causes severe slowdowns after a few hundred tenants. I believe this is due to change tracking.

This seems fairly simple to fix but it's not something we can do here. Possible fixes are.

  • Don't do long iterations. Pull out permissions etc. in one query. Looking at PermissionDataSeeder.cs this seems like a quick change.
  • Recreate the dbContext object inside of the loop for each iteration ( each tenant )
  • Turn off change tracking for the dbContext instance or specific queries.

The quick fixes seem to be disabling change tracking or recreating the dbContext on each tenant loop. I also think pulling out the permissions in bulk rather than one at a time would make a big difference.

For our number of users is it entirelly impossible to migrate the database seeding (structural changes are fast though.)

I submitted this to github and to bugs and issues and got no response, just closed as stale.

Showing 11 to 20 of 48 entries
Made with ❤️ on ABP v8.2.0-preview Updated on March 25, 2024, 15:11