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
相关产品推荐
相关产品推荐

