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

ASP.NET Core 6 Identity启动自动跳转登录页而非首页问题

ASP.NET Core Identity 复制项目后自动跳转登录页的排查解决
  • 先查全局授权策略
    看看Program.cs(.NET 6+)或者Startup.cs里是不是加了全局授权过滤,比如这段代码:

    builder.Services.AddControllersWithViews(options =>
    {
        var policy = new AuthorizationPolicyBuilder()
            .RequireAuthenticatedUser()
            .Build();
        options.Filters.Add(new AuthorizeFilter(policy));
    });
    

    如果有这个配置,所有页面都会强制要求登录。原项目肯定是给Home/Index加了[AllowAnonymous]特性,你复制的时候可能没注意,给HomeController或者它的Index方法加上[AllowAnonymous]即可。

  • 检查Identity的Cookie跳转配置
    看看配置Identity的地方有没有写这段:

    services.ConfigureApplicationCookie(options =>
    {
        options.LoginPath = "/Account/Manage/Login";
    });
    

    这个配置会把未授权请求直接跳转到指定登录页,原项目可能没配这个,或者配置的路径不同,你需要调整成原项目的配置,或者直接移除。

  • 删掉web.config里没用的配置
    ASP.NET Core不识别传统的<authentication mode="None">,这个配置对Core项目完全无效,直接删掉就行。

  • 检查控制器的授权特性
    看看HomeController是不是被误加了[Authorize]特性,原项目肯定没加这个,要是有就删掉,确保首页允许匿名访问。

  • 清理缓存+确认路由配置
    先清理浏览器缓存,旧的认证Cookie可能导致异常跳转;然后确认路由配置里有没有加上MapRazorPages(),因为Identity的登录页大多是Razor Pages,没加这个路由会导致跳转逻辑异常。示例配置:

    app.UseEndpoints(endpoints =>
    {
        endpoints.MapControllerRoute(
            name: "default",
            pattern: "{area:exists}/{controller=Home}/{action=Index}/{id?}");
        endpoints.MapRazorPages(); // 必须添加,否则Identity的Razor Pages路由不生效
    });
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.15 15:55:01