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

ASP.NET Core Identity脚手架搭建后,登录/注册页面路径无法访问

解决方案:添加Identity脚手架后无法访问登录/注册页面

问题回顾

添加ASP.NET Core Identity脚手架但未覆盖任何页面,尝试以下路径均无法访问注册页面:

  • mydomain.com/Account/Register
  • mydomain.com/Identity/Account/Register
  • mydomain.com/Identity/Register
    _Layout引用的_LoginPartial.cshtml中存在注册链接代码,但无法生效:
<li class="nav-item">
    <a class="nav-link text-dark" id="register" asp-area="Identity" asp-page="/Account/Register">Register</a>
</li>

核心原因

ASP.NET Core Identity的默认登录/注册页面是嵌入在NuGet包中的,仅添加脚手架但未正确配置路由和服务时,这些嵌入页面无法被路由到。

修复步骤

  1. 验证服务配置(.NET 6+ 用Program.cs,.NET 5及以前用Startup.cs)
    确保已添加Identity服务并启用默认UI:
// .NET 6+ Program.cs
builder.Services.AddDefaultIdentity<IdentityUser>(options => options.SignIn.RequireConfirmedAccount = true)
    .AddEntityFrameworkStores<ApplicationDbContext>()
    .AddDefaultUI(); // 显式启用嵌入的默认UI页面
  1. 启用Razor页面路由
    必须配置MapRazorPages()才能让Identity的Razor页面路由生效:
// .NET 6+ Program.cs
app.MapRazorPages();

// .NET 5及以前 Startup.cs Configure方法
app.UseEndpoints(endpoints =>
{
    endpoints.MapControllerRoute(
        name: "default",
        pattern: "{controller=Home}/{action=Index}/{id?}");
    endpoints.MapRazorPages(); // 务必添加此行
});
  1. 确认正确访问路径
    嵌入的Identity页面默认正确路径为:
  • 注册:/Identity/Account/Register
  • 登录:/Identity/Account/Login
    _LoginPartial中的标签助手asp-area="Identity"和asp-page="/Account/Register"会自动生成正确URL,前提是路由配置正确。
  1. 排查残留冲突
    如果之前手动覆盖过Identity页面后又删除,检查项目中是否残留Identity文件夹或相关页面文件,这些可能导致路由冲突,需彻底清理。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 22:18:31