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

ASP.NET Core 6 MVC 会话/闲置超时后无法重定向至自定义登录页的问题

ASP.NET Core 6 MVC 会话/闲置超时后无法重定向至自定义登录页的问题

我看了你贴的代码,首先发现一个很明显的问题:你重复调用了builder.Services.ConfigureApplicationCookie方法,而且第二次的代码还没写完(options.Acces...),这种重复配置很容易导致覆盖或者冲突,先把这个问题解决掉——只保留一次完整的ConfigureApplicationCookie配置。

接下来咱们一步步排查其他可能导致重定向失效的原因:

  • 确保配置顺序正确:如果你的项目使用了Identity相关服务(比如AddDefaultIdentity或AddIdentity),一定要在添加Identity服务之后再调用ConfigureApplicationCookie,不然Identity的默认配置会覆盖你自定义的登录路径。正确的顺序示例如下:

    // 先添加Identity服务
    builder.Services.AddDefaultIdentity<IdentityUser>(options => options.SignIn.RequireConfirmedAccount = true)
        .AddEntityFrameworkStores<ApplicationDbContext>();
    
    // 再配置认证Cookie,这一步必须放在AddIdentity之后
    builder.Services.ConfigureApplicationCookie(options =>
    {
        options.Cookie.HttpOnly = true;
        options.ExpireTimeSpan = TimeSpan.FromMinutes(builder.Configuration.GetValue<int>("MIGSettings:SessionTiming"));
        options.LoginPath = "/login";
        options.AccessDeniedPath = "/login";
        options.SlidingExpiration = true;
    });
    
  • 验证自定义登录页的路由是否存在:确认你的项目里有对应的LoginController,并且有返回自定义登录视图的Index方法,保证路由能正确映射到/login:

    public class LoginController : Controller
    {
        public IActionResult Index()
        {
            return View();
        }
    }
    

    同时要确保Views/Login/Index.cshtml视图文件存在,不然会出现404错误,系统可能会自动跳转到默认的Identity登录页兜底。

  • 检查中间件顺序是否正确:在Program.cs配置中间件时,要保证app.UseAuthentication()和app.UseAuthorization()的顺序,并且放在路由中间件之后、端点中间件之前:

    app.UseHttpsRedirection();
    app.UseStaticFiles();
    
    app.UseRouting();
    
    // 这两个中间件顺序不能乱,且位置要正确
    app.UseAuthentication();
    app.UseAuthorization();
    
    app.MapControllerRoute(
        name: "default",
        pattern: "{controller=Home}/{action=Index}/{id?}");
    app.MapRazorPages(); // 如果项目用到了Razor Pages形式的Identity,这个中间件不能少
    
  • 清理浏览器缓存和Cookie:有时候旧的认证Cookie会残留,导致测试结果不准确,建议清空浏览器缓存和Cookie,或者用隐私窗口测试新配置。

最后再确认appsettings.json里的MIGSettings:SessionTiming是有效的整数值,比如:

{
  "MIGSettings": {
    "SessionTiming": 30
  }
}

备注:内容来源于stack exchange,提问作者user24192006

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.17 09:33:05