gpt4 book ai didi

asp.net - 在 ASP.Net Core 中禁用 Accept-Language header 的默认使用

转载 作者:行者123 更新时间:2023-12-01 12:25:08 24 4
gpt4 key购买 nike

在 ASP.Net Core 中,我根据有关在应用程序中建立文化的文档进行了以下设置:

var supportedCultures = new[]
{
new CultureInfo("en-CA"),
new CultureInfo("fr-CA"),
new CultureInfo("fr"),
new CultureInfo("en"),
new CultureInfo("en-US"),
};

var defaultRequestCulture = Configuration["Settings:Culture:DefaultRequestCulture"];

if (defaultRequestCulture == null)
{
defaultRequestCulture = "en-CA";
}

app.UseRequestLocalization(new RequestLocalizationOptions
{
DefaultRequestCulture = new RequestCulture(defaultRequestCulture),
SupportedCultures = supportedCultures,
SupportedUICultures = supportedCultures
});

我添加了 Settings:Culture:DefaultRequestCultureappsettings.json文件,因此可以在每个站点安装的基础上进行配置。

This documentation表示可以更改顺序,但遗憾的是没有提供有关如何更改的示例。

它表示默认使用这三个提供程序:
  • QueryStringRequestCultureProvider
  • CookieRequestCultureProvider
  • AcceptLanguageHeaderRequestCultureProvider

  • 我不知道如何禁用第三个。我希望其他的保持原样,但应用程序完全忽略 HTTP header 。

    最佳答案

    就像您想从 IList<T> 中删除任何项目一样.

    var localizationOptions = new RequestLocalizationOptions
    {
    SupportedCultures = ...,
    SupportedUICultures = ...,
    DefaultRequestCulture = new RequestCulture("en-US")
    };

    var requestProvider = localizationOptions.RequestCultureProviders.OfType<AcceptLanguageHeaderRequestCultureProvider>().First();
    localizationOptions.RequestCultureProviders.Remove(requestProvider);

    要不就
    var localizationOptions = new RequestLocalizationOptions
    {
    SupportedCultures = ...,
    SupportedUICultures = ...,
    DefaultRequestCulture = new RequestCulture("en-US"),
    RequestCultureProviders = new List<IRequestCultureProvider>
    {
    // Order is important, its in which order they will be evaluated
    new QueryStringRequestCultureProvider(),
    new CookieRequestCultureProvider()
    };
    };

    关于asp.net - 在 ASP.Net Core 中禁用 Accept-Language header 的默认使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40569863/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com