Activities of "htavukcu"

It worked, thank you.

Hi,

No, I use Basic Theme

Can you share an example for method 2?

Hi team,

I'm using the MVC UI with Account.Pro module and I would like to customize the alert messages shown on the login page — particularly in cases like invalid credentials.

My questions are:

1-Is there a way to change the position and style of the default alert messages on the login page? 2-Alternatively, is it possible to handle these alerts on the client side, so I can show a custom message instead of the default one?

I'd appreciate any guidance or recommended approach for customizing this behavior within the context of the MVC UI and Account.Pro module.

Thanks in advance!

Hi team,

I'm currently working on a multi-tenant application using the ABP Framework and I would like to clarify something regarding background processing.

Is IBackgroundWorker tenant-safe by default? In other words, when using background workers in a multi-tenant application, does ABP ensure that each tenant has its own isolated instance or context when the worker is running?

If not, what is the recommended or best practice to trigger a BackgroundJob for each tenant from within a BackgroundWorker? I'm looking for a safe and scalable way to ensure tenant-specific background processing.

Would an approach like the one below be correct?

protected override async Task DoWorkAsync(PeriodicBackgroundWorkerContext workerContext)
{
        var currentTenant = workerContext.ServiceProvider.GetRequiredService<ICurrentTenant>();
        var tenantStore = workerContext.ServiceProvider.GetRequiredService<ITenantStore>();
        var tenants = await tenantStore.GetListAsync();
        foreach (var tenant in tenants)
        {
            if (tenant.IsActive)
            {
                using (currentTenant.Change(tenant.Id))
                using (var scope = workerContext.ServiceProvider.CreateScope())
                {
                }
            }
            else
            {
            }
        }    
}

Any guidance or examples would be greatly appreciated.

Thanks in advance!

Ok I see, I didn't realize that endpoint was there. I guess I could use that. Thanks for your help.

Because I am sending a request from the API to change the settings. (/api/account-admin/settings/external-provider)

Hi, Thanks for your help, it worked as expected.

Hi, I didn't add it to the api project as you said. When I added the first codes I wrote to the api project, it worked without any problems. Thanks for your help.

Hi,

I modified my code as shown below.

context.Services.AddAuthentication()    
     .AddOpenIdConnect(OpenIdConnectDefaults.AuthenticationScheme, OpenIdConnectDefaults.AuthenticationScheme, options =>
     {
            
     })
     .WithDynamicOptions<OpenIdConnectOptions, OpenIdConnectHandler>(
         OpenIdConnectDefaults.AuthenticationScheme,
         options =>
         {
             options.WithProperty(x => x.ClientId);
             options.WithProperty(x => x.ClientSecret, isSecret: true);
         }
     );

And I tried to update the settings configuration with the following data.

{
    "verifyPasswordDuringExternalLogin": false,
    "externalProviders": [
        {
            "name": "Google",
            "enabled": false,
            "properties": [
                {
                    "name": "ClientId",
                    "value": null
                }
            ],
            "secretProperties": [
                {
                    "name": "ClientSecret",
                    "value": null
                }
            ]
        },
        {
            "name": "Microsoft",
            "enabled": false,
            "properties": [
                {
                    "name": "ClientId",
                    "value": null
                }
            ],
            "secretProperties": [
                {
                    "name": "ClientSecret",
                    "value": null
                }
            ]
        },
        {
            "name": "Twitter",
            "enabled": false,
            "properties": [
                {
                    "name": "ConsumerKey",
                    "value": null
                }
            ],
            "secretProperties": [
                {
                    "name": "ConsumerSecret",
                    "value": null
                }
            ]
        },
        {
            "name": "OpenIdConnect",
            "enabled": false,
            "properties": [
                {
                    "name": "ClientId",
                    "value": null
                }
            ],
            "secretProperties": [
                {
                    "name": "ClientSecret",
                    "value": null
                }
            ]
        }
    ]
}

And same error

External provider with OpenIdConnect not definition!
System.Exception: External provider with OpenIdConnect not definition!
   at Volo.Abp.Account.ExternalProviders.ExternalProviderSettingsHelper.SetAsync(ExternalProviderSettings settings)
   at Volo.Abp.Account.AccountSettingsAppService.UpdateExternalProviderAsync(AccountExternalProviderSettingsDto input)
   at Castle.DynamicProxy.AsyncInterceptorBase.ProceedAsynchronous(IInvocation invocation, IInvocationProceedInfo proceedInfo)
   at Volo.Abp.Castle.DynamicProxy.CastleAbpMethodInvocationAdapter.ProceedAsync()
   at Volo.Abp.Authorization.AuthorizationInterceptor.InterceptAsync(IAbpMethodInvocation invocation)
   at Volo.Abp.Castle.DynamicProxy.CastleAsyncAbpInterceptorAdapter`1.InterceptAsync(IInvocation invocation, IInvocationProceedInfo proceedInfo, Func`3 proceed)
   at Castle.DynamicProxy.AsyncInterceptorBase.ProceedAsynchronous(IInvocation invocation, IInvocationProceedInfo proceedInfo)
   at Volo.Abp.Castle.DynamicProxy.CastleAbpMethodInvocationAdapter.ProceedAsync()
   at Volo.Abp.GlobalFeatures.GlobalFeatureInterceptor.InterceptAsync(IAbpMethodInvocation invocation)
   at Volo.Abp.Castle.DynamicProxy.CastleAsyncAbpInterceptorAdapter`1.InterceptAsync(IInvocation invocation, IInvocationProceedInfo proceedInfo, Func`3 proceed)
   at Castle.DynamicProxy.AsyncInterceptorBase.ProceedAsynchronous(IInvocation invocation, IInvocationProceedInfo proceedInfo)
   at Volo.Abp.Castle.DynamicProxy.CastleAbpMethodInvocationAdapter.ProceedAsync()
   at Volo.Abp.Auditing.AuditingInterceptor.ProceedByLoggingAsync(IAbpMethodInvocation invocation, AbpAuditingOptions options, IAuditingHelper auditingHelper, IAuditLogScope auditLogScope)
   at Volo.Abp.Auditing.AuditingInterceptor.InterceptAsync(IAbpMethodInvocation invocation)
   at Volo.Abp.Castle.DynamicProxy.CastleAsyncAbpInterceptorAdapter`1.InterceptAsync(IInvocation invocation, IInvocationProceedInfo proceedInfo, Func`3 proceed)
   at Castle.DynamicProxy.AsyncInterceptorBase.ProceedAsynchronous(IInvocation invocation, IInvocationProceedInfo proceedInfo)
   at Volo.Abp.Castle.DynamicProxy.CastleAbpMethodInvocationAdapter.ProceedAsync()
   at Volo.Abp.Validation.ValidationInterceptor.InterceptAsync(IAbpMethodInvocation invocation)
   at Volo.Abp.Castle.DynamicProxy.CastleAsyncAbpInterceptorAdapter`1.InterceptAsync(IInvocation invocation, IInvocationProceedInfo proceedInfo, Func`3 proceed)
   at Castle.DynamicProxy.AsyncInterceptorBase.ProceedAsynchronous(IInvocation invocation, IInvocationProceedInfo proceedInfo)
   at Volo.Abp.Castle.DynamicProxy.CastleAbpMethodInvocationAdapter.ProceedAsync()
   at Volo.Abp.Uow.UnitOfWorkInterceptor.InterceptAsync(IAbpMethodInvocation invocation)
   at Volo.Abp.Castle.DynamicProxy.CastleAsyncAbpInterceptorAdapter`1.InterceptAsync(IInvocation invocation, IInvocationProceedInfo proceedInfo, Func`3 proceed)
   at Volo.Abp.Account.AccountSettingsController.UpdateExternalProviderAsync(AccountExternalProviderSettingsDto input)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ActionMethodExecutor.TaskResultExecutor.Execute(ActionContext actionContext, IActionResultTypeMapper mapper, ObjectMethodExecutor executor, Object controller, Object[] arguments)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.<InvokeActionMethodAsync>g__Logged|12_1(ControllerActionInvoker invoker)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.<InvokeNextActionFilterAsync>g__Awaited|10_0(ControllerActionInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Rethrow(ActionExecutedContextSealed context)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.<InvokeInnerFilterAsync>g__Awaited|13_0(ControllerActionInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeNextExceptionFilterAsync>g__Awaited|26_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
Showing 1 to 10 of 32 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.0.0-preview. Updated on September 18, 2025, 07:10