Hello,
Thank you for the suggestion. I tried adding favicon.ico and favicon.svg as embedded resources using the configuration you provided, but it did not resolve the issue.
Since I couldn't share our codebase, I created a fresh ABP v10 solution and confirmed that favicon replacement works correctly in the default template. So I decided to make a diff check for all the differences and I was able to pinpoint the issue.
Root Cause: I found that the issue was caused by the order of middleware in the application initialization. In our ABP v9 implementation, we had:
app.UseCorrelationId();
app.MapAbpStaticAssets();
app.UseAbpStudioLink();
app.UseRouting();
In the new version app.UseRouting(); was moved before app.MapAbpStaticAssets();
Moving app.UseRouting() before app.MapAbpStaticAssets() resolved the issue. The favicons now display correctly.
Is it possible to get this question ticket refunded?
Thanks.
I verified all of this and it's still not working.

As you can see in this image of my wwwroot I have a favicon.svg and favicon.ico in the auth server project and it's not the LeptonX icon
. Then when I run the project in my local machine and make a request for favicon I get a different icon:
.
We have not made any changes related to favicon, we just updated to ABP 10.
We created our ABP solution using ABP 9 a year ago, we changed the favicon following these instructions: https://abp.io/support/questions/5025/How-to-change-the-favicon-and-title-in-the-profile-settings-page and it worked great but now we have updated to ABP 10 and is ignoring our favicon. After the migration it is using LeptonX icon instead. I already tried clearing cookies, in incognito, using chrome and firefox. Our favicon.svg and favicon.ico are definitely available at wwwroot in both AuthServer and Blazor projects but it's not using them.
Thank you very much @maliming, this worked.
I've tried to download the Account Pro + LeptonX source using abp cli but I get an error, is there another way to get this? We really only need the Login.cshtml
Hello! I am trying to customize the login page for our application, I read the docs and I have created the file /Pages/Account/Login.cshtml in the Auth server application and copy/pasted the cshtml from here: https://github.com/abpframework/abp/blob/dev/modules/account/src/Volo.Abp.Account.Web/Pages/Account/Login.cshtml. This works correctly but it looks very different from the version that ships with account pro module. Is there a way to get the up-to-date cshtml for the login page? We only want to customize the external login section and leave everything else the same. I am attaching some images to showcase the differences. We're using volo.abp.account.pro.public.web 9.0.2 nuget package.
Just to summarize in case this happens to anyone else, using .WithDynamicOptions after .AddOpenIdConnect in the AuthServer fixed the issue but you also need to add
context.Services.AddDynamicExternalLoginProviderOptions<OpenIdConnectOptions>( "AzureOpenId", options => { options.WithProperty(x => x.Authority); options.WithProperty(x => x.ClientId); options.WithProperty(x => x.ClientSecret, isSecret: true); });
in the ApiHost to be able to configure the provider in the application.
An unhandled exception occurred while processing the request. ArgumentNullException: Value cannot be null. (Parameter 'ClientId')
System.ArgumentNullException.Throw(string paramName) System.ArgumentNullException.ThrowIfNull(object argument, string paramName) System.ArgumentException.ThrowNullOrEmptyException(string argument, string paramName) System.ArgumentException.ThrowIfNullOrEmpty(string argument, string paramName) Microsoft.AspNetCore.Authentication.OpenIdConnect.OpenIdConnectOptions.Validate() Microsoft.AspNetCore.Authentication.RemoteAuthenticationOptions.Validate(string scheme) Microsoft.AspNetCore.Authentication.AuthenticationBuilder+<>c__DisplayClass4_0<TOptions, THandler>.<AddSchemeHelper>b__1(TOptions o) Microsoft.Extensions.Options.ValidateOptions<TOptions>.Validate(string name, TOptions options) Microsoft.Extensions.Options.OptionsFactory<TOptions>.Create(string name) Microsoft.Extensions.Options.OptionsMonitor<TOptions>+<>c.<Get>b__10_0(string name, IOptionsFactory<TOptions> factory) Microsoft.Extensions.Options.OptionsCache<TOptions>+<>c__DisplayClass3_1<TArg>.<GetOrAdd>b__2() System.Lazy<T>.ViaFactory(LazyThreadSafetyMode mode) System.Lazy<T>.ExecutionAndPublication(LazyHelper executionAndPublication, bool useDefaultConstructor) System.Lazy<T>.CreateValue() Microsoft.Extensions.Options.OptionsCache<TOptions>.GetOrAdd<TArg>(string name, Func<string, TArg, TOptions> createOptions, TArg factoryArgument) Microsoft.Extensions.Options.OptionsMonitor<TOptions>.Get(string name) Microsoft.AspNetCore.Authentication.AuthenticationHandler<TOptions>.InitializeAsync(AuthenticationScheme scheme, HttpContext context) Microsoft.AspNetCore.Authentication.AuthenticationHandlerProvider.GetHandlerAsync(HttpContext context, string authenticationScheme) Microsoft.AspNetCore.Authentication.AuthenticationMiddleware.Invoke(HttpContext context) Volo.Abp.AspNetCore.Security.AbpSecurityHeadersMiddleware.InvokeAsync(HttpContext context, RequestDelegate next) Microsoft.AspNetCore.Builder.UseMiddlewareExtensions+InterfaceMiddlewareBinder+<>c__DisplayClass2_0+<<CreateMiddleware>b__0>d.MoveNext() Volo.Abp.Studio.Client.AspNetCore.AbpStudioMiddleware.InvokeAsync(HttpContext context, RequestDelegate next) Volo.Abp.Studio.Client.AspNetCore.AbpStudioMiddleware.InvokeAsync(HttpContext context, RequestDelegate next) Microsoft.AspNetCore.Builder.UseMiddlewareExtensions+InterfaceMiddlewareBinder+<>c__DisplayClass2_0+<<CreateMiddleware>b__0>d.MoveNext() Volo.Abp.AspNetCore.Tracing.AbpCorrelationIdMiddleware.InvokeAsync(HttpContext context, RequestDelegate next) Microsoft.AspNetCore.Builder.UseMiddlewareExtensions+InterfaceMiddlewareBinder+<>c__DisplayClass2_0+<<CreateMiddleware>b__0>d.MoveNext() Microsoft.AspNetCore.Localization.RequestLocalizationMiddleware.Invoke(HttpContext context) Microsoft.AspNetCore.RequestLocalization.AbpRequestLocalizationMiddleware.InvokeAsync(HttpContext context, RequestDelegate next) Microsoft.AspNetCore.Builder.UseMiddlewareExtensions+InterfaceMiddlewareBinder+<>c__DisplayClass2_0+<<CreateMiddleware>b__0>d.MoveNext() Microsoft.AspNetCore.Diagnostics.DeveloperExceptionPageMiddlewareImpl.Invoke(HttpContext context)
context.Services.AddDynamicExternalLoginProviderOptions<OpenIdConnectOptions>( "AzureOpenId", options => { options.WithProperty(x => x.Authority); options.WithProperty(x => x.ClientId); options.WithProperty(x => x.ClientSecret, isSecret: true); options.WithProperty(x => x.CallbackPath); });
context.Services.AddAuthentication()
.AddOpenIdConnect("AzureOpenId", "Azure AD OpenId", options =>
{
options.ResponseType = OpenIdConnectResponseType.CodeIdToken;
options.RequireHttpsMetadata = false;
options.SaveTokens = true;
options.GetClaimsFromUserInfoEndpoint = true;
options.Scope.Add("email");
options.ClaimActions.MapJsonKey(ClaimTypes.NameIdentifier, "sub");
});
This worked, thank you!
Hello!
Need some help customizing the footer of the Auth Server blazor application, it currently displays "2025© Lepton Theme by Volosoft" and some links. Where can we change this? the docs say we should be inheriting from Footer and overriding it using dependency injection but that only works for the Blazor Server app it is not working on the Auth Server App.

Thanks.