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

ASP.NET Core 6.0 scaffolded Identity页面未生效,仍用RCL默认页面

解决.NET 6.0中独立项目Identity脚手架页面不加载的问题

你遇到的问题核心是.NET 6.0的Razor Pages默认只会扫描当前网站项目的程序集查找页面,独立项目的Identity页面没有被纳入扫描范围,导致依然使用RCL中的默认页面。以下是需要补充的关键配置:

1. 确保独立项目是正确的类型

如果你的独立项目是普通类库,需要修改其.csproj文件,切换为Razor类库并启用MVC支持:

<Project Sdk="Microsoft.NET.Sdk.Razor">
  <PropertyGroup>
    <TargetFramework>net6.0</TargetFramework>
    <AddRazorSupportForMvc>true</AddRazorSupportForMvc>
  </PropertyGroup>
  <!-- 保留原有的包引用,比如Microsoft.AspNetCore.Identity.EntityFrameworkCore、EntityFrameworkCore相关包 -->
</Project>

如果是新建项目,直接选择Razor Class Library模板并勾选"支持页面和视图"即可。

2. 网站项目中配置Razor Pages扫描独立项目程序集

在网站项目的Program.cs中,添加Razor Pages应用部件,指定扫描独立项目的程序集:

// 先配置Identity和DbContext(确保使用独立项目中的ApplicationDbContext)
builder.Services.AddDbContext<ApplicationDbContext>(options =>
    options.UseSqlServer(builder.Configuration.GetConnectionString("DefaultConnection")));

builder.Services.AddDefaultIdentity<IdentityUser>(options => options.SignIn.RequireConfirmedAccount = true)
    .AddEntityFrameworkStores<ApplicationDbContext>();

// 关键:添加独立项目的程序集到Razor Pages扫描范围
// 这里用独立项目中任意一个Identity页面的Model类型来获取程序集,比如LoginModel
builder.Services.AddRazorPages()
    .AddApplicationPart(typeof(SharedIdentity.Areas.Identity.Pages.Account.LoginModel).Assembly);

3. 验证页面路径和命名空间

  • 独立项目中的Identity页面路径必须和RCL默认路径完全一致:Areas/Identity/Pages/Account/Login.cshtml、Areas/Identity/Pages/Account/Register.cshtml等,路径不匹配无法覆盖默认页面。
  • 独立项目的_ViewImports.cshtml要正确配置命名空间和TagHelper:
@using Microsoft.AspNetCore.Identity
@using 你的独立项目命名空间.Data
@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers
@namespace 你的独立项目命名空间.Areas.Identity.Pages

4. 清理缓存并重新生成

  • 清理解决方案的bin/obj文件夹,重新生成所有项目。
  • 清除浏览器缓存或使用无痕模式测试,避免旧页面缓存干扰。

完成以上配置后,独立项目中的Identity页面就会被正确加载,替代RCL中的默认页面。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 06:15:36