扩大这个问题的答案:Change routing in ASP.NET Core Identity UI?
当想要自定义URL时,Javier建议使用以下选项之一:使用默认UI的scaffolding元素并自行进行所有必要的自定义 . 使用重定向规则将旧路由指向新路由 . 根本不要使用默认UI .
从新的ASP.NET Core 2.1 MVC项目,使用身份验证:个人用户帐户设置,您如何不使用默认UI?它似乎默认安装在Identity Core上 .
创建项目后,删除默认UI剃刀页面的方法是什么,仍然使用Identity Core?
我可以删除 /Identity/
区域,然后创建我自己的 AccountController
吗?
3 回答
使用the article linked by Panagiotis Kanavos,我能够找到解决方案 .
在ASP.NET Core 2.1.0-preview1中,有一行
.AddDefaultUI()
,您不必包含在Startup.cs
中 .然而,在Core 2.1的最终版本中,相同的部分被简化为:
solution ,如果将
AddDefaultIdentity
更改回AddIdentity
,则可以覆盖默认值 . I.E.不包括.AddDefaultUI()
(也不包括UI),你可以编写自己的 .然后,我认为删除
/Areas/Identity/
文件夹是安全的,但我不是100%Update:
我清理了我的答案,详细说明了我最终使用的最终解决方案,删除了ASP.NET Core 2.1附带的默认身份UI剃刀页面,并使用了MVC .
1)在
Startup.cs
,显然,如果需要,将
ApplicationUser
和IdentityRole
替换为您自己的类 .2)删除ASP.NET Core 2.1项目默认的Identity文件夹 .
3)创建一个新的单独的ASP.NET Core 2.0项目(不是"2.1"),在项目创建窗口中选择
Individual User Account
身份验证 .4)将
AccountController
和ManageController
以及相应的ViewModels
和Views
从2.0项目复制到ASP.NET Core 2.1项目 .做到这一点,我到目前为止还没有遇到任何问题 .
我赞成了第一个答案,因为它让我在那里得到90%,想要给出其余部分(放在评论中的时间太长了) . 所以你'll want to keep that /Areas/Identity/ folder because it points to your shared folder if you happen to be using the header from the default template, if not it doesn' t,重要的是删除它 . 后端仍将指向
Identity/Account/Register/
,因此创建一个名为Account
的控制器在视图中创建一个名为Account
的文件夹并放入Register.cshtml
. 我从调试器窗口中获取了原始html,您可以将其用作模板进行自定义 . 放入Register.cshtml:就像其他答案所说,改变启动:
还要做到你的控制器的路径,同样的Startup.cs文件,保留其中的其他路由,可能在我想到它时先保留它,因为它按顺序检查它们:
有点晚了,但有一个更简单的方法 . 您可以添加新的脚手架来覆盖所有内容 . 看看这篇文章enter link description here