c# - MVC 5 ASP.Net 切换语言
问题描述
我有一个多年来正常工作的 ASP.net MVC 5 应用程序。
最近在法语和英语之间切换已停止工作。它部署在 Windows Azure 上。
语言的切换在开发机器上仍然可以正常工作,并使用以下代码:
public ActionResult SetLanguage(string culture)
{
Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo(culture);
Thread.CurrentThread.CurrentUICulture = Thread.CurrentThread.CurrentCulture;
// Validate input
culture = MSP.Services.CultureHelper.GetImplementedCulture(culture);
// Save culture in a cookie
HttpCookie cookie = Request.Cookies["_culture"];
if (cookie != null)
cookie.Value = culture; // update cookie value
else
{
cookie = new HttpCookie("_culture");
cookie.Value = culture;
}
cookie.Expires = DateTime.Now.AddYears(1);
Response.Cookies.Add(cookie);
return RedirectToAction("Index", "Home", new { message = $"The language has now been set to {culture}" });
}
不确定 Windows Azure 是否发生了变化?
解决方案
我在添加 cookie 之前添加了以下行:
cookie.Secure = true;
它现在适用于所有浏览器。
事实证明,这是自 2020 年夏季起逐步推出的 Chromium 浏览器所做的必要更改。IE cookie 应该是安全的。
推荐阅读
- python - 在 Windows 中安装 torchaudio
- python - 使用 Generator 输入数据集但得到 IndexError
- react-native - 在返回更新父级上反应导航 V5
- ms-access - 访问更改表关系本身
- swift - 为什么我会收到嵌套关联类型的 Swift 错误
- swift - Swift + Combine 中是否有类似于 PromiseKit 的“确保”的功能?
- r - 安装后 Rstudio 未从 ubuntu 上的终端执行
- javascript - 在递归中与 post Increment 和 log 语句链接
- javascript - 如何从对象数组中过滤对象,在反应js中具有属性值
- nuxt.js - $validator undefined vee-validate NuxtJS