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();