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

ASP.NET Core Identity频繁登出求助:迁移服务器后登录状态失效

登录状态无法持久化的常见原因及排查方向

迁移服务器后登录状态快速失效,结合你的配置代码,主要排查以下几个方向:

  • Cookie 认证配置缺失持久化设置
    你提供的Configure方法中没有包含Cookie认证的具体配置,ASP.NET Core默认的Cookie认证是会话级(关闭浏览器即失效),或过期时间极短。需要在ConfigureServices中确认是否配置了持久化Cookie:

    services.AddAuthentication(CookieAuthenticationDefaults.AuthenticationScheme)
        .AddCookie(options =>
        {
            options.ExpireTimeSpan = TimeSpan.FromDays(30); // 自定义持久化时长
            options.Cookie.MaxAge = TimeSpan.FromDays(30);
            options.SlidingExpiration = true; // 用户活动时自动延长有效期
        });
    

    迁移时若未同步这部分配置,就会导致登录状态无法长期保持。

  • 服务器应用池回收策略导致会话丢失
    如果网站依赖服务器端会话存储(比如默认的内存会话),新服务器的应用池可能设置了较短的闲置超时或回收周期(比如IIS默认20分钟闲置回收)。应用池回收后,服务器端的会话数据会被清空,用户需要重新登录。

    • 调整服务器应用池的闲置超时和固定回收时间,延长周期;
    • 建议改用分布式会话存储(如Redis、数据库),避免单服务器会话丢失问题。
  • Cookie 域/路径配置不匹配
    迁移后域名变更,或Cookie的Domain/Path配置与当前网站域名、路径不一致,会导致浏览器无法正确保存或携带Cookie。比如旧服务器的Cookie域是旧域名,新服务器用了新域名,浏览器不会识别该Cookie,每次请求都需重新登录。
    检查Cookie配置中的Domain和Path是否与当前网站匹配。

  • HTTPS 与 Cookie 安全属性冲突
    你的配置中启用了HTTPS重定向,但如果Cookie的Secure属性设为true,而网站存在HTTP访问场景(比如DemoSite的HTTPS重定向逻辑),浏览器会拒绝保存Secure Cookie,导致登录状态无法持久。另外,新服务器HTTPS配置异常也可能导致Cookie无法标记为Secure,被浏览器限制。
    生产环境确保Cookie的Secure属性为true,且网站全程通过HTTPS访问。

  • 服务器时间与客户端时间差异过大
    新服务器系统时间与客户端时间偏差较大,会导致Cookie过期时间计算错误。比如服务器时间比客户端快很多,Cookie实际过期时间远早于预期,用户闲置几小时后就会被判定为登录失效。
    检查服务器系统时间是否与标准时间同步。

内容的提问来源于stack exchange,提问作者Jonathan Wood

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.20 03:12:35