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);
}
}