使用CookieRequestCultureProvider的.netcore 2.1 MVC应用程序中的本地化

时间:2019-03-29 13:27:41

标签: c# asp.net-core asp.net-core-mvc

我正在创建.netcore 2.1 MVC应用程序。

我们必须支持UI和控制器返回的消息的多种语言。

我点击了链接: https://docs.microsoft.com/en-us/aspnet/core/fundamentals/localization?view=aspnetcore-2.1

在任何使用Chrome浏览器的浏览器中,我分别用用户A和用户B登录的2个标签。如果用户A更改了偏好的语言,则其UI会以正确的语言显示UI。都好。 现在,如果我刷新用户B选项卡并刷新UI语言,则他/她的语言也将更改。

我正在使用以下代码:

[[source]]
name = "pypi"
url = "https://pypi.org/simple"
verify_ssl = true

[dev-packages]

[packages]
requests = "*"
beautifullsoup = "*"
beautifulsoup4 = "*"

[requires]
python_version = "3.7"

我认为我应该通过在cookie名称中附加userid为每个用户创建单独的cookie。但这是行不通的。

我需要做的其他核心更改可能是startup.cs或其他地方,因此应用程序知道新cookie的名称不是默认名称,并且线程会读取正确的cookie并继续加载区域性信息。

1 个答案:

答案 0 :(得分:0)

  

现在,如果我刷新用户B标签并刷新UI语言,他/她也将更改

这是预期的行为,因为浏览器不会为登录网站的用户创建cookie,而是会在浏览器中为特定域(站点url)创建cookie。因此,无论用户A还是用户B更改语言,都会在浏览器中为所有用户设置cookie。

  

我认为我应该为每个用户创建单独的cookie,方法是在cookie名称中附加userid

您无法完成此操作,因为您只能为CookieRequestCultureProvider指定1个自定义区域性cookie名称,并且无法基于用户ID支持多个cookie名称。