Modified date parsing and formatting to use invariant culture, ensuring consistency and preventing non-ASCII characters in HTTP headers.

This commit is contained in:
fonsecaf 2024-06-05 13:39:31 +10:00
parent d449396ad5
commit ac377a8b68

View File

@ -338,7 +338,7 @@
{ {
var values = visitorCookieValue.Split('|'); var values = visitorCookieValue.Split('|');
int.TryParse(values[0], out _visitorId); int.TryParse(values[0], out _visitorId);
DateTime.TryParse(values[1], out expiry); DateTime.TryParseExact(values[1], "M/d/yyyy hh:mm:ss tt", CultureInfo.InvariantCulture, DateTimeStyles.None, out expiry);
} }
else // legacy cookie format else // legacy cookie format
{ {
@ -425,7 +425,7 @@
Context.Response.Cookies.Append( Context.Response.Cookies.Append(
visitorCookieName, visitorCookieName,
$"{_visitorId}|{expiry}", $"{_visitorId}|{expiry.ToString("M/d/yyyy hh:mm:ss tt", CultureInfo.InvariantCulture)}",
new CookieOptions() new CookieOptions()
{ {
Expires = DateTimeOffset.UtcNow.AddYears(10), Expires = DateTimeOffset.UtcNow.AddYears(10),