You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ASP.NET Core设置的短时效Cookie在Chrome中无法保存的问题

问题分析与解决方案

问题根源

当前GMT时间为2023年7月25日05:35,你设置的Cookie过期时间为GMT 05:50:54,仅比当前GMT时间晚15分钟左右。若服务器系统时间与实际GMT存在秒级/分钟级偏差,或浏览器本地时间与GMT不同步,Chrome会判定该Cookie为「即将过期」甚至「已过期」,从而拒绝保存。而延长过期时间至2天时,时间偏差的影响被抵消,因此Cookie能正常存储。

解决步骤

  • 校准服务器时间
    确保GoDaddy服务器的系统时间与GMT严格同步(PDT为GMT-7,服务器时间22:35对应GMT 05:35是正确时区映射,但需保证时间精度):

    • Windows服务器执行命令:w32tm /resync
    • Linux服务器执行命令:ntpd -q
  • 修正ASP.NET Core的Cookie过期时间计算逻辑
    避免基于服务器本地时间计算过期时间,改用DateTime.UtcNow生成标准GMT时间,确保expires字段精准:

    var cookieOptions = new CookieOptions
    {
        Expires = DateTime.UtcNow.AddMinutes(15), // 基于UTC时间计算15分钟过期
        HttpOnly = true, // 提升Cookie安全性,防止XSS攻击
        Secure = true,   // 生产环境建议开启,仅通过HTTPS传输Cookie
        SameSite = SameSiteMode.Lax // 适配现代浏览器的跨站Cookie策略
    };
    Response.Cookies.Append("_Gex.Application", "chunks-2", cookieOptions);
    
  • 检查Chrome的Cookie配置
    打开chrome://settings/cookies,确认浏览器未设置自动清除近期过期的Cookie,且允许目标域名存储Cookie。

  • 排查Cookie属性冲突
    确保未同时设置MaxAge与Expires属性(部分浏览器对这两个属性的优先级处理存在差异),同时验证Cookie的域名、路径设置符合业务需求,避免作用域错误导致的存储失败。

内容的提问来源于stack exchange,提问作者Imran Qadir Baksh - Baloch

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.15 07:18:40