Configure CultureInfo en Asp.net Core para tener a. como CurrencyDecimalSeparator en lugar de,

Me estoy volviendo loco. Solo quiero que la cultura utilizada en toda la aplicación principal de Asp.net se configure en "en-US". Pero nada parece funcionar. ¿Dónde configuro la cultura para toda la aplicación? No estoy interesado en las culturas del navegador del cliente y qué no. Lo único que parece cambiarlo es cambiar la configuración de idioma de Windows. Solo quiero que la cultura se determine dentro de la aplicación en sí, no por el cliente.

Lo que he probado hasta ahora:

Conjunto<system.web><globalization uiCulture="en" culture="en-US" /></system.web> en web.configConjuntoSystem.Threading.Thread.CurrentThread.CurrentCulture = cultureInfo; yCurrentUICulture en Startup.Configure e incluso en el controlador.

Utilizarapp.UseRequestLocalization(.. Como se muestra abajo

    var enUsCulture = new CultureInfo("en-US");
    var localizationOptions = new RequestLocalizationOptions()
    {
        SupportedCultures = new List<CultureInfo>()
        {
            enUsCulture
        },
        SupportedUICultures = new List<CultureInfo>()
        {
            enUsCulture
        },
        DefaultRequestCulture = new RequestCulture(enUsCulture),
        FallBackToParentCultures = false,
        FallBackToParentUICultures = false,
        RequestCultureProviders = null
    };

    app.UseRequestLocalization(localizationOptions);

Pero nada parece cambiar el CurrencyDecimalSeparator de (nl-NL) a (en-US).

¿Cómo se puede establecer la cultura?

EDITAR: @soren Así es como se ve el método de configuración. He puesto un punto de quiebreDetermineProviderCultureResult pero nunca se ve afectado mientras visita el sitio web.

public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory, FinOsDbContext context)
    {
        loggerFactory.AddConsole(Configuration.GetSection("Logging"));
        loggerFactory.AddDebug();

        if (env.IsDevelopment())
        {
            app.UseDeveloperExceptionPage();
            app.UseDatabaseErrorPage();
            app.UseBrowserLink();
        }
        else
        {
            app.UseExceptionHandler("/Home/Error");
        }

        app.UseStaticFiles();

        app.UseIdentity();

        // Add external authentication middleware below. To configure them please see http://go.microsoft.com/fwlink/?LinkID=532715

        app.UseMvc(routes =>
        {
            routes.MapRoute(
                name: "default",
                template: "{controller=Home}/{action=Index}/{id?}");
        });

        //TODO: Clean up
        //var cultureInfo = new CultureInfo("en-US");
        //System.Threading.Thread.CurrentThread.CurrentCulture = cultureInfo;
        //System.Threading.Thread.CurrentThread.CurrentUICulture = cultureInfo;

        app.UseRequestLocalization();

        // UseCookieAuthentication..
        // UseJwtBearerAuthentication..

        //add userculture provider for authenticated user
        var requestOpt = new RequestLocalizationOptions();
        requestOpt.SupportedCultures = new List<CultureInfo>
        {
            new CultureInfo("en-US")
        };
        requestOpt.SupportedUICultures = new List<CultureInfo>
        {
            new CultureInfo("en-US")
        };
        requestOpt.RequestCultureProviders.Clear();
        requestOpt.RequestCultureProviders.Add(new SingleCultureProvider());

        app.UseRequestLocalization(requestOpt);

        FinOsDbContext.Initialize(context);
        FinOsDbContext.CreateTestData(context);
    }

    public class SingleCultureProvider : IRequestCultureProvider
    {
        public Task<ProviderCultureResult> DetermineProviderCultureResult(HttpContext httpContext)
        {
            return Task.Run(() => new ProviderCultureResult("en-US", "en-US"));
        }
    }

Respuestas a la pregunta(3)

Su respuesta a la pregunta