如何在 ASP.NET Core 中设置永不过期的 cookie?

How to set never-expiring cookie in ASP.NET Core?

我想设置一个 "never" 过期的 cookie,这意味着将其设置为 2^31 - 1,这是一个绝对 value/date 而不是偏移量,以避免 2038 wrap-around bug.

要在 ASP.NET 核心中设置 cookie:

Response.Cookies.Append("name", "value", new CookieOptions() { /*...*/ })

由于 bug,我无法使用 DateTime.MaxValue 等等。我应该为 CookieOptions 使用什么?

我决定像这样硬编码值:

var co = new CookieOptions();
co.Expires = new DateTimeOffset(2038, 1, 1, 0, 0, 0, TimeSpan.FromHours(0));

这避免了 2038 problem