Asp.net core 标识/帐户/管理页面的布局在搭建完整的.Net标识UI源后被破坏

Asp.net core 标识/帐户/管理页面的布局在搭建完整的.Net标识UI源后被破坏,asp.net-core,asp.net-core-mvc,asp.net-identity,asp.net-core-5.0,Asp.net Core,Asp.net Core Mvc,Asp.net Identity,Asp.net Core 5.0,我将遵循以下指南: 遵循第一个指南后,我得到了身份/帐户/管理页面的预期内容: 但是,在遵循第二个指南后,布局被破坏。旁边的菜单不见了。应用程序不再查找区域/Identity/Pages/Account/Manage/_Layout.cshtml,我不明白为什么 这是git差异 名称空间WebIdentity.Areas.Identity { 公共类标识hostingstartup:IHostingStartup { 公共void配置(IWebHostBuilder) { builder

我将遵循以下指南:

  • 遵循第一个指南后,我得到了身份/帐户/管理页面的预期内容:

    但是,在遵循第二个指南后,布局被破坏。旁边的菜单不见了。应用程序不再查找
    区域/Identity/Pages/Account/Manage/_Layout.cshtml
    ,我不明白为什么

    这是git差异

    名称空间WebIdentity.Areas.Identity
    {
    公共类标识hostingstartup:IHostingStartup
    {
    公共void配置(IWebHostBuilder)
    {
    builder.ConfigureServices((上下文,服务)=>{
    services.AddDbContext(选项=>
    options.UseSqlServer(
    GetConnectionString(“IdentityDbContextConnection”);
    -services.AddDefaultIdentity(options=>options.SignIn.RequireConfirmedAccount=true)
    -.AddEntityFrameworkStores();
    +服务
    +.AddIdentity(options=>options.SignIn.RequireConfirmedAccount=true)
    +.AddEntityFrameworkStores()
    +.AddDefaultTokenProviders();
    +
    +服务
    +.AddMvc()
    +.AddRazorPagesOptions(选项=>
    +                    {
    +options.Conventions.AuthorizeAreaFolder(“Identity”,“Account/Manage”);
    +选项.约定.授权区域页面(“标识”,“/Account/Logout”);
    +                    });
    +
    +services.configureApplicationOK(选项=>
    +                {
    +options.LoginPath=$“/Identity/Account/Login”;
    +options.LogoutPath=$“/Identity/Account/Logout”;
    +options.AccessDeniedPath=$“/Identity/Account/AccessDenied”;
    +                });
    +
    +services.AddSingleton();
    });
    }
    }
    
    调用
    AddDefaultIdentity
    与调用以下内容类似:

    1:额外性

    2:AddDefaultUI

    3:AddDefaultTokenProviders

    您需要在
    启动中添加
    默认UI
    ,如下所示(添加
    .AddDefaultUI()
    ):

    服务
    .AddIdentity(options=>options.SignIn.RequireConfirmedAccount=true)
    .AddDefaultUI()
    .AddEntityFrameworkStores()
    .AddDefaultTokenProviders();
    

    你可以看到更多关于
    AddDefaultIdentity

    的详细信息,我已将每个步骤添加为git提交:好的,是的,你的建议确实有效,但是,根据
    AddDefaultUI
    ,不应该需要。它多次显示以下内容:
    如果使用Identity scaffolder将身份文件添加到项目中,请删除调用AddDefaultUI
    。接下来它所做的比我希望的要多得多:/。您是脚手架项目吗?还是在创建项目时选择了个人身份验证。脚手架生成的项目应该是这样生成的。我首先创建了一个新的ASP.Net 5.0 MVC应用程序,但没有进行身份验证。然后我继续我也重复了这个过程,但使用了.Net Core 3.1。我也重复了这个步骤,但选择了用户身份验证选项,然后按照指南进行操作,然后按照指南进行操作。
      services
      .AddIdentity<User, IdentityRole>(options => options.SignIn.RequireConfirmedAccount = true)
      .AddDefaultUI()
      .AddEntityFrameworkStores<IdentityDbContext>()
      .AddDefaultTokenProviders();