using Microsoft.AspNetCore.Localization; using Microsoft.AspNetCore.Mvc; namespace Prefab.Culture; /// /// Controller for setting the culture. /// [Route("[controller]/[action]")] public class CultureController : Controller { /// /// Set the culture and redirect to the specified URL. /// /// /// /// LocalRedirect ActionResult /// /// Use LocalRedirect action result to prevent open redirect attacks. /// For more information Prevent open redirect attacks in ASP.NET Core /// public IActionResult Set(string? culture, string redirectUri) { if (culture != null) { HttpContext.Response.Cookies.Append( CookieRequestCultureProvider.DefaultCookieName, CookieRequestCultureProvider.MakeCookieValue( new RequestCulture(culture, culture))); } return LocalRedirect(redirectUri); } }