ASP.NET Core 7.0添加Scaffolding Identity后本地页面无法访问
ASP.NET Core 7.0 添加Scaffolding Identity后页面无法访问的排查方案
- 检查路由配置:确保Program.cs中在
app.UseAuthorization();之后添加了app.MapRazorPages();,Identity依赖Razor Pages路由,缺少这一行会导致页面无法被匹配。 - 验证DbContext配置:确认自定义DbContext继承自
IdentityDbContext<IdentityUser>(或你的自定义用户实体),且Program.cs中正确注册了DbContext和Identity服务,示例代码如下:builder.Services.AddDbContext<ApplicationDbContext>(options => options.UseSqlServer(builder.Configuration.GetConnectionString("DefaultConnection"))); builder.Services.AddDefaultIdentity<IdentityUser>(options => options.SignIn.RequireConfirmedAccount = true) .AddEntityFrameworkStores<ApplicationDbContext>(); - 确认访问路径正确:Identity脚手架生成的页面默认路径为
/Identity/Account/Login、/Identity/Account/Register等,直接访问根路径不会自动跳转,需使用完整路径访问。 - 清理编译缓存:删除项目的bin和obj文件夹,执行
dotnet clean和dotnet build命令,排除编译缓存导致的文件异常。 - 检查中间件顺序:确保Program.cs中中间件顺序符合规范,正确顺序为:
app.UseHttpsRedirection(); app.UseStaticFiles(); app.UseRouting(); app.UseAuthentication(); app.UseAuthorization(); app.MapRazorPages(); // 必须在UseAuthorization之后 - 检查Identity文件完整性:确认生成的Identity文件夹下包含完整的Razor页面文件,无缺失或损坏情况,若文件不完整可重新运行脚手架命令生成。
内容的提问来源于stack exchange,提问作者Kiến
相关产品推荐
相关产品推荐

