DefaultLocalizationCookieMiddleware.cs 946 B

1234567891011121314151617181920212223242526272829303132
  1. using Abp.Timing;
  2. using Microsoft.AspNetCore.Localization;
  3. namespace VberZero.Localization;
  4. public class DefaultLocalizationCookieMiddleware
  5. {
  6. private readonly RequestDelegate _next;
  7. private readonly string _cookieName = VzConsts.LocalizationCookieName;
  8. public DefaultLocalizationCookieMiddleware(RequestDelegate next)
  9. {
  10. _next = next;
  11. }
  12. public async Task Invoke(HttpContext context)
  13. {
  14. var cookie = context.Request.Cookies[_cookieName];
  15. if (cookie == null)
  16. {
  17. string cookieValue = CookieRequestCultureProvider.MakeCookieValue(new RequestCulture(VzConsts.DefaultLanguage, VzConsts.DefaultLanguage));
  18. context.Response.Cookies.Append(VzConsts.LocalizationCookieName, cookieValue, new CookieOptions()
  19. {
  20. Expires = Clock.Now.AddYears(2),
  21. HttpOnly = true
  22. });
  23. }
  24. await _next(context);
  25. }
  26. }