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

如何在ASP.NET Core 6 MVC应用起始页直接显示登录界面?

ASP.NET Core 6 MVC + Identity 授权跳转404问题解决

问题核心定位

你遇到的404错误,本质是授权跳转逻辑与路由配置不匹配导致的。给HomeController加[Authorize]后,未授权用户访问首页会被重定向到登录页,但如果路由配置缺失、登录路径设置错误,就会触发404。同时你需要实现“访问域名直接显示登录表单”的需求,需要结合路由和授权配置调整。

分步解决方案

1. 检查并修复Identity路由配置

Identity基于Razor Pages,必须在Program.cs中添加Razor Pages路由映射,否则会导致Identity页面路由失效:

// 放在路由配置相关代码段中
app.MapRazorPages();

2. 修正授权跳转的登录路径

在Program.cs中明确配置ApplicationCookie的登录路径,确保和你已确认可访问的登录页路由一致:

builder.Services.ConfigureApplicationCookie(options =>
{
    options.LoginPath = "/Identity/Account/Login"; // 匹配你已验证可访问的路径
    options.AccessDeniedPath = "/Identity/Account/AccessDenied";
});

3. 实现“访问域名直接显示登录表单”

推荐用重定向方式实现,既简洁又能复用Identity自带的登录/注册逻辑:
在Program.cs的路由配置后添加根路径重定向代码:

app.MapGet("/", context =>
{
    return context.Response.Redirect("/Identity/Account/Login");
});

4. 确保全局授权逻辑正确

  • 单个控制器/方法:直接给需要保护的控制器添加[Authorize]特性
  • 全局授权:可给所有控制器基类添加[Authorize],仅给登录/注册相关的Razor Pages或MVC方法添加[AllowAnonymous]特性,避免逐一配置

排查验证步骤

  1. 直接访问/Identity/Account/Login,确认页面正常加载
  2. 启动项目后访问根路径,检查是否自动跳转到登录页
  3. 登录成功后,验证是否能正常访问HomeController下的页面

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 18:45:12