Activities of "rcalv002"

create a new project, add a tenant, login to tenant and set account overide for external login support.

Fill in the settings and log out. Attempt to login to the tenant with the external provider (without first creating abp user). External provider login succeeds redirects to main application, 400 bad request error: Logs show as below

[22:32:51 INF] Executing endpoint '/Account/Register'
[22:32:51 INF] Route matched with {page = "/Account/Register", action = "", controller = "", area = ""}. Executing page /Account/Register
[22:32:51 INF] Skipping the execution of current filter as its not the most effective filter implementing the policy Microsoft.AspNetCore.Mvc.ViewFeatures.IAntiforgeryPolicy
[22:32:51 INF] Executing handler method Volo.Abp.Account.Public.Web.Pages.Account.RegisterModel.OnPostAsync - ModelState is Invalid
[22:32:51 INF] Start processing HTTP request GET https://graph.microsoft.com/v1.0/me/photo/$value
[22:32:51 INF] Sending HTTP request GET https://graph.microsoft.com/v1.0/me/photo/$value
[22:32:51 INF] Received HTTP response headers after 228.7578ms - 200
[22:32:51 INF] End processing HTTP request after 228.9203ms - 200
[22:32:52 INF] AuthenticationScheme: Identity.Application signed in.
[22:32:52 INF] Executed handler method OnPostAsync, returned result Microsoft.AspNetCore.Mvc.RedirectResult.
[22:32:52 INF] Executing RedirectResult, redirecting to https://mydomain/?page=%2FAccount%2F~%2FAccount%2FLogin.
[22:32:52 INF] Executed page /Account/Register in 816.1899ms
[22:32:52 INF] Executed endpoint '/Account/Register'
[22:32:52 INF] Sending welcome email to tenant user: 3a1f6215-78b1-8c0b-88c4-73b736847965, TenantId: 3a1f6144-16da-f3f5-27cf-6826c562fcbf
[22:32:52 INF] Executing endpoint 'Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.Controllers.ErrorController.Index (Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared)'
[22:32:52 INF] Route matched with {action = "Index", controller = "Error", area = "", page = ""}. Executing controller action with signature System.Threading.Tasks.Task`1[Microsoft.AspNetCore.Mvc.IActionResult] Index(Int32) on controller Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.Controllers.ErrorController (Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared).
[22:32:52 WRN] The provided antiforgery token was meant for a different claims-based user than the current user.
[22:32:52 INF] Authorization failed for the request at filter 'Volo.Abp.AspNetCore.Mvc.AntiForgery.AbpAutoValidateAntiforgeryTokenAuthorizationFilter'.
[22:32:52 INF] Executing StatusCodeResult, setting HTTP status code 400
[22:32:52 INF] Executed action Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.Controllers.ErrorController.Index (Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared) in 2.6912ms
[22:32:52 INF] Executed endpoint 'Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.Controllers.ErrorController.Index (Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared)'
[22:32:52 ERR] An unhandled exception has occurred while executing the request.
System.Collections.Generic.KeyNotFoundException: The given key 'IsSeeding' was not present in the dictionary.
at System.Collections.Generic.Dictionary`2.get_Item(TKey key)
at Cns.Cloud.Apps.Users.UserCreatedEventHandler.HandleEventAsync(EntityCreatedEto`1 eventData) in /work/src/myproject/Users/UserCreatedEventHandler.cs:line 46
at Volo.Abp.EventBus.EventHandlerInvoker.InvokeAsync(IEventHandler eventHandler, Object eventData, Type eventType)
at Volo.Abp.EventBus.EventBusBase.TriggerHandlerAsync(IEventHandlerFactory asyncHandlerFactory, Type eventType, Object eventData, List`1 exceptions, InboxConfig inboxConfig)
at Volo.Abp.EventBus.EventBusBase.ThrowOriginalExceptions(Type eventType, List`1 exceptions)
at Volo.Abp.EventBus.EventBusBase.TriggerHandlersAsync(Type eventType, Object eventData)
at Volo.Abp.EventBus.Local.LocalEventBus.PublishAsync(LocalEventMessage localEventMessage)
at Volo.Abp.EventBus.Local.LocalEventBus.PublishToEventBusAsync(Type eventType, Object eventData)
at Volo.Abp.EventBus.EventBusBase.PublishAsync(Type eventType, Object eventData, Boolean onUnitOfWorkComplete)
at Volo.Abp.EventBus.Distributed.LocalDistributedEventBus.PublishToEventBusAsync(Type eventType, Object eventData)
at Volo.Abp.EventBus.Distributed.LocalDistributedEventBus.PublishAsync(Type eventType, Object eventData, Boolean onUnitOfWorkComplete, Boolean useOutbox)
at Volo.Abp.EventBus.UnitOfWorkEventPublisher.PublishDistributedEventsAsync(IEnumerable`1 distributedEvents)
at Volo.Abp.Uow.UnitOfWork.CompleteAsync(CancellationToken cancellationToken)
at Volo.Abp.AspNetCore.Uow.AbpUnitOfWorkMiddleware.InvokeAsync(HttpContext context, RequestDelegate next)
at Microsoft.AspNetCore.Builder.UseMiddlewareExtensions.InterfaceMiddlewareBinder.<>c__DisplayClass2_0.<b__0>d.MoveNext()
--- End of stack trace from previous location ---
at Volo.Abp.AspNetCore.ExceptionHandling.AbpExceptionHandlingMiddleware.InvokeAsync(HttpContext context, RequestDelegate next)
at Volo.Abp.AspNetCore.ExceptionHandling.AbpExceptionHandlingMiddleware.InvokeAsync(HttpContext context, RequestDelegate next)
at Microsoft.AspNetCore.Builder.UseMiddlewareExtensions.InterfaceMiddlewareBinder.<>c__DisplayClass2_0.<b__0>d.MoveNext()
--- End of stack trace from previous location ---
at Microsoft.AspNetCore.Timing.AbpTimeZoneMiddleware.InvokeAsync(HttpContext context, RequestDelegate next)
at Microsoft.AspNetCore.Builder.UseMiddlewareExtensions.InterfaceMiddlewareBinder.<>c__DisplayClass2_0.<b__0>d.MoveNext()
--- End of stack trace from previous location ---
at Volo.Abp.AspNetCore.MultiTenancy.MultiTenancyMiddleware.InvokeAsync(HttpContext context, RequestDelegate next)
at Microsoft.AspNetCore.Builder.UseMiddlewareExtensions.InterfaceMiddlewareBinder.<>c__DisplayClass2_0.<b__0>d.MoveNext()
--- End of stack trace from previous location ---
at Microsoft.AspNetCore.Builder.ApplicationBuilderAbpOpenIddictMiddlewareExtension.<>c__DisplayClass0_0.<b__0>d.MoveNext()
--- End of stack trace from previous location ---
at Microsoft.AspNetCore.Authentication.AuthenticationMiddleware.Invoke(HttpContext context)
at Volo.Abp.AspNetCore.Security.AbpSecurityHeadersMiddleware.InvokeAsync(HttpContext context, RequestDelegate next)
at Microsoft.AspNetCore.Builder.UseMiddlewareExtensions.InterfaceMiddlewareBinder.<>c__DisplayClass2_0.<b__0>d.MoveNext()
--- End of stack trace from previous location ---
at Volo.Abp.Studio.Client.AspNetCore.AbpStudioMiddleware.InvokeAsync(HttpContext context, RequestDelegate next)
at Volo.Abp.Studio.Client.AspNetCore.AbpStudioMiddleware.InvokeAsync(HttpContext context, RequestDelegate next)
at Microsoft.AspNetCore.Builder.UseMiddlewareExtensions.InterfaceMiddlewareBinder.<>c__DisplayClass2_0.<b__0>d.MoveNext()
--- End of stack trace from previous location ---
at Volo.Abp.AspNetCore.Tracing.AbpCorrelationIdMiddleware.InvokeAsync(HttpContext context, RequestDelegate next)
at Microsoft.AspNetCore.Builder.UseMiddlewareExtensions.InterfaceMiddlewareBinder.<>c__DisplayClass2_0.<b__0>d.MoveNext()
--- End of stack trace from previous location ---
at Microsoft.AspNetCore.Diagnostics.ExceptionHandlerMiddlewareImpl.g__Awaited|10_0(ExceptionHandlerMiddlewareImpl middleware, HttpContext context, Task task)
[22:32:52 INF] Request finished HTTP/1.1 POST https://mydomain/Account/Register?isExternalLogin=True&returnUrl=https%3A%2F%2Fmydomain%2F%3Fpage%3D%252FAccount%252F%7E%252FAccount%252FLogin - 302 0 null 1190.0806ms
[22:32:52 INF] Request starting HTTP/1.1 GET http://mydomain/Error?httpStatusCode=400 - null null
[22:32:52 INF] Executing endpoint 'Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.Controllers.ErrorController.Index (Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared)'
[22:32:52 INF] Route matched with {action = "Index", controller = "Error", area = "", page = ""}. Executing controller action with signature System.Threading.Tasks.Task`1[Microsoft.AspNetCore.Mvc.IActionResult] Index(Int32) on controller Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.Controllers.ErrorController (Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared).
[22:32:52 INF] Executing ViewResult, running view ~/Views/Error/Default.cshtml.

Create a new project, try to use oauth for the email sender, theres no native support. Override the EmailSender or the EmailSenderBase to add oauth, this is successful if you want to always send from same mailbox, with same credentials. If you want tenants to be able to configure their own oauth on their tenant (for example to send email notifications to their users using their own domain) its not possible in current UI.

  • Template: app
  • Created ABP Studio Version: 0.9.11
  • Current ABP Studio Version: 1.4.1
  • Tiered: No
  • UI Framework: blazor-server
  • Theme: leptonx
  • Theme Style: system
  • Database Provider: ef
  • Database Management System: postgres
  • Separate Tenant Schema: Yes
  • Mobile Framework: maui
  • Public Website: Yes
  • Optional Modules:
    • GDPR
    • TextTemplateManagement
    • LanguageManagement
    • AuditLogging
    • SaaS
    • OpenIddictAdmin

our solution has a db context for host and db context for tenants. Each tenant has its own connection string to its own db.

When we add new migrations, we do so in the efcore project of the main apps project (we have several sub modules) and we point it to the --context tenantsdbcontext. We run db migrator things work as expected.

Now, how do we rollback migrations applied to the tenant dbs in development (with db migrator or tools like dotnet ef) and in production (production runs in containers for us)

We looked at https://abp.io/community/articles/integrating-.net-ai-chat-template-with-abp-framework-qavb5p2j#gsc.tab=0 to integrate the microsoft ai chat template to our module based app.

Almost everything is working fine, even though the new version differs from the community article at this point. however, there are some ai-libs that should be served, that we can't get right. The page using the ai template is in one of our submodules, not the main "app". when the js function attempts to loading the assistant-message markdown, those libs are not found and so the response is just plain text with no markdown formatting or sanitation

[21:36:14 WRN] The static asset '/ai-libs/dompurify/dist/purify.es.mjs' was not found in the built time manifest. This file will not be available at runtime if it is not available at compile time during the publish process. If the file was not added to the project during development, and is created at runtime, use the StaticFiles middleware to serve it instead. [21:36:14 INF] Executed endpoint 'Fallback {**path:file}' [21:36:14 INF] Request finished HTTP/2 GET https://localhost:44320/ai-libs/dompurify/dist/purify.es.mjs - 404 0 null 8.9684ms [21:36:14 INF] Request reached the end of the middleware pipeline without being handled by application code. Request path: GET https://localhost:44320/ai-libs/dompurify/dist/purify.es.mjs, Response status code: 404

  • Exception message and full stack trace:
  • Steps to reproduce the issue:

Upgrade from 9.1.2 to 9.3.1, upgrade abp and dotnet packages to relevant versions, run migrations.

Existing solution had app depending on a module, the localization entries from the module are not working but the localization entries from ABP in the submodule and the app module are working.

For example, default + new manual localization entries in app, show on page. default localization entries in submodule (from abp dependencies) show on page. new manual localization entries in submodule do not show on page (menu labels, item labels, page labels etc)

Confirmed also not appearing on the api call that retrieves all the localization entries.

  • ABP Framework version: v8.1.0
  • UI Type: Blazor Server
  • Database System: EF Core
  • Tiered (for MVC) or Auth Server Separated (for Angular): no
  • Exception message and full stack trace:
  • Steps to reproduce the issue:

Attempted to implement social login on our app. as per docs below but the login button doesn't appear when we go to the login page. What's missing?

context.Services.AddAuthentication()
    .AddMicrosoftAccount(MicrosoftAccountDefaults.AuthenticationScheme, options =>
    {
        options.AuthorizationEndpoint = "https://login.microsoftonline.com/guid/oauth2/v2.0/authorize";
        options.TokenEndpoint = "https://login.microsoftonline.com/guid/oauth2/v2.0/token";

        options.ClaimActions.MapCustomJson("picture", _ => "https://graph.microsoft.com/v1.0/me/photo/$value");
        options.SaveTokens = true;

        options.ClientId = configuration["Authentication:Microsoft:ClientId"];
        options.ClientSecret = configuration["Authentication:Microsoft:ClientSecret"];
    })
    .WithDynamicOptions<MicrosoftAccountOptions, MicrosoftAccountHandler>(
        MicrosoftAccountDefaults.AuthenticationScheme,
        options =>
        {
            options.WithProperty(x => x.ClientId);
            options.WithProperty(x => x.ClientSecret, isSecret: true);
        }
    );

  • Template: app
  • Abp version: 9.0.0
  • Created ABP Studio Version: 0.9.11
  • Tiered: No
  • UI Framework: blazor-server
  • Theme: leptonx
  • Theme Style: system
  • Database Provider: ef
  • Database Management System: sqlserver
  • Separate Tenant Schema: Yes
  • Mobile Framework: maui
  • Public Website: Yes
  • Optional Modules:
    • GDPR
    • TextTemplateManagement
    • LanguageManagement
    • AuditLogging
    • SaaS
    • OpenIddictAdmin
  • Steps to reproduce the issue:

generate new app solution with abp studio Add a method to an appservice Execute method via swagger Receive antiforgery token error.

2024-11-22 11:36:09.728 -07:00 [WRN] The required antiforgery header value "RequestVerificationToken" is not present.
2024-11-22 11:36:09.729 -07:00 [INF] Authorization failed for the request at filter 'Volo.Abp.AspNetCore.Mvc.AntiForgery.AbpAutoValidateAntiforgeryTokenAuthorizationFilter'.
2024-11-22 11:36:09.730 -07:00 [INF] Executing StatusCodeResult, setting HTTP status code 400

Was this broken again with the move to 9?

similar to old post where this was already fixed in v4 https://abp.io/support/questions/554/REST-API-Antiforgery-Cookie-Error-After-POST-apiLogin---POST-apimyentity-Call-Sequence

  • Template: app
  • Abp version: 8.3.2
  • Created ABP Studio Version: 0.9.2
  • Tiered: No
  • UI Framework: blazor-server
  • Theme: leptonx
  • Theme Style: system
  • Database Provider: ef
  • Database Management System: sqlserver
  • Separate Tenant Schema: Yes
  • Mobile Framework: maui
  • Public Website: Yes
  • Optional Modules:
    • GDPR
    • TextTemplateManagement
    • LanguageManagement
    • AuditLogging
    • SaaS
    • OpenIddictAdmin
  • Steps to reproduce the issue:

Created app solution, and included an existing module (if I run the module directly in its own solution everything works well)

The module provides some functionality to receive api call and eventually queue up a job in the system which goes to hangfire (this works on module host)

When using this in app solution, the background job is executed ( i can see the api calls that this background job makes going out) but nothing ends up in hangfire, i believe it is executing in the built in default in mem implementation instead of hangfire.

My app module has the same version of hangfire and hangfire.sqlserver installed as module, which are in sync for abp 8.3.2 and is decorated with

typeof(AbpBackgroundJobsHangfireModule),
typeof(AbpBackgroundJobsModule)

in configureservices


 context.Services.AddHangfire(config =>
 {
     config.UseSqlServerStorage(configuration.GetConnectionString("Default"));
 });

 Configure<AbpHangfireOptions>(options =>
 {
     options.ServerOptions = new BackgroundJobServerOptions { Queues = new[] { DocusignConstants.DocusignQueue, "default" } };
 });
 
 Configure<AbpBackgroundJobWorkerOptions>(options =>
 {
     options.DefaultTimeout = 864000; //10 days (as seconds)
 });
 

in OnApplicationInitialization app.UseAbpHangfireDashboard("/hangfire", options => { options.AsyncAuthorization = new[] { new AbpHangfireAuthorizationFilter(enableTenant: true) }; });

While i can log in and see the dashboard, it never receives jobs.

  • ABP Framework version: v8.1.1
  • UI Type: Blazor Server
  • Database System: EF Core (SQL Server)
  • Tiered (for MVC) or Auth Server Separated (for Angular): no
  • Exception message and full stack trace:
  • Steps to reproduce the issue
  • :
  1. Generate a new project using blazor-server ui.
  2. Add a page, in the constructor, inject IUiPageProgressService
  3. Refresh this page via reload or F5 on browser
  4. Yellow error message banner at the bottom of the screen and error message in console

  • ABP Framework version: v8.1.1
  • UI Type: Blazor Server
  • Database System: EF Core (SQL Server)
  • Tiered (for MVC) or Auth Server Separated (for Angular): no
  • Exception message and full stack trace:
  • Steps to reproduce the issue:

Created a module solution, generated some pages, with their own styles. Created an application solution and referenced/depended on the module solution projects.

When running in VS, or even with dotnet run on development machine, everything works well. When running the build script to generate docker image on application solution and then running that image as a container we see two problems.

  1. The styles from the module are missing, even though they may be in a contributor, while the module page functions in the application page, it looks different because of missing style in bundle.
public class MyBundleContributor : BundleContributor
{
    public override void ConfigureBundle(BundleConfigurationContext context)
    {
        context.Files.AddIfNotContains("/Pages/ServiceBindings/Index.razor.css");
    }
}
  1. In the application solution, added some cshtml templates, for use with the emailing + text templating system. Even though these are set to embedded resource and added to the virtual file system, when the application runs in docker deployment, the error log mentions that the files cant be found, and the process halts.

MyApp.Domain.csproj

<ItemGroup>
  <EmbeddedResource Include="Templates\MyEmailLayout.cshtml" />
  <EmbeddedResource Include="Templates\EmailLayout.cshtml" />
  <EmbeddedResource Include="Templates\NewUser.cshtml" />
</ItemGroup>

MyApp.DomainModule.cs

[DependsOn(typeof(AbpVirtualFileSystemModule))]
[DependsOn(typeof(AbpTextTemplatingRazorModule))]


public class MyDomainModule : AbpModule
{
    public override void ConfigureServices(ServiceConfigurationContext context)
    {
        ...
        
        Configure<AbpRazorTemplateCSharpCompilerOptions>(options =>
        {
            options.References.Add(MetadataReference.CreateFromFile(typeof(CloudToolsDomainModule).Assembly.Location));
        });

        Configure<AbpVirtualFileSystemOptions>(options =>
        {
            options.FileSets.AddEmbedded<MyDomainModule>();
        });
    }
}

Again, everything works on local machine via

($env:ASPNETCORE_ENVIRONMENT="Release") | dotnet run --property:Configuration=Release

What is missing for successful deployment?

Showing 1 to 10 of 24 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.2.0-preview. Updated on February 17, 2026, 09:10
1
ABP Assistant
🔐 You need to be logged in to use the chatbot. Please log in first.