发布ASP.NET Core应用后显示默认登录页,提示需用其他服务登录
解决ASP.NET Core发布后显示默认登录页而非自定义页面的问题
我帮你梳理下几个关键问题,这些应该就是导致发布后登录页异常的核心原因:
1. 修正中间件顺序与弃用API问题
你的代码里使用了已被废弃的UseIdentity(),而且中间件的执行顺序存在错误,这会直接打乱认证流程。ASP.NET Core 2.1+版本后,官方推荐使用UseAuthentication()和UseAuthorization()组合,并且必须保证正确的执行顺序:
- 移除
app.UseIdentity();,它的功能已经被整合到UseAuthentication()和UseAuthorization()中 - 新增
app.UseAuthorization(),并确保它放在UseAuthentication()之后、UseMvc()之前 - 修正
UseStatusCodePages的写法,不要在内部嵌套调用UseStatusCodePagesWithRedirects,这会导致中间件逻辑冲突
修正后的Configure方法代码示例:
public void Configure(IApplicationBuilder app, IHostingEnvironment env) { if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); } else { app.UseExceptionHandler("/Home/Error"); app.UseHsts(); } // 针对403状态码跳转的正确写法 app.UseStatusCodePages(context => { var response = context.HttpContext.Response; if (response.StatusCode == StatusCodes.Status403Forbidden) { response.Redirect("~/Identity/Account/Login"); } return Task.CompletedTask; }); app.UseHttpsRedirection(); app.UseStaticFiles(); app.UseCookiePolicy(); app.UseSession(); app.UseAuthentication(); app.UseAuthorization(); // 新增该中间件,保证认证后执行授权逻辑 CreateSignalRRouts(app); app.UseMvc(routes => { routes.MapRoute(name: "areas", template: "{area:exists}/{controller=Home}/{action=Index}/{id?}"); routes.MapRoute(name: "default", template: "{controller=Home}/{action=Index}/{id?}"); }); }
2. 确认Identity UI的配置正确性
检查ConfigureServices方法中Identity的配置,确保正确关联了自定义页面所在的路由:
- 如果使用自定义的Identity页面,要在
AddIdentity后调用AddDefaultUI(),确保UI路由被正确注册 - 确认自定义登录页的路径为
Areas/Identity/Pages/Account/Login.cshtml,并且发布时该文件被正确包含(右键文件→属性→复制到输出目录设置为"如果较新则复制")
示例配置代码:
services.AddDefaultIdentity<IdentityUser>() .AddEntityFrameworkStores<ApplicationDbContext>() .AddDefaultUI(); // 必须添加此方法,确保Identity UI路由生效
3. 检查生产环境的配置项
开发环境和生产环境的配置可能存在差异,重点检查appsettings.Production.json中的Cookie配置:
{ "CookiePolicy": { "MinimumSameSitePolicy": "Lax", "HttpOnly": true, "Secure": true // 生产环境HTTPS下必须设为true,否则认证Cookie无法正常工作 } }
4. 清除浏览器缓存测试
发布后浏览器可能缓存了旧的页面或认证Cookie,导致显示异常。建议使用隐私窗口测试,或手动清除浏览器缓存后重试。
内容的提问来源于stack exchange,提问作者18666
相关产品推荐
相关产品推荐

