在VS 2017中,我创建了一个新的ASP.NET核心Web应用程序。在向导的第二页上,我选择了Web应用程序,对于身份验证,我选择了“个人用户帐户”。
现在,我正在尝试找到与/ Account / Register和/ Account / Login相关联的页面。
_Layout.cshtml引入_LoginPartial.cshtml,就像在经典MVC中一样:
<div class="navbar-collapse collapse">
<ul class="nav navbar-nav">
<li><a asp-page="/Index">Home</a></li>
<li><a asp-page="/About">About</a></li>
<li><a asp-page="/Contact">Contact</a></li>
</ul>
<partial name="_LoginPartial" />
</div>
如果用户未登录,则_LoginPartial包含指向登录和注册页面的<a>
标记:
<ul class="nav navbar-nav navbar-right">
<li><a asp-area="Identity" asp-page="/Account/Register">Register</a></li>
<li><a asp-area="Identity" asp-page="/Account/Login">Login</a></li>
</ul>
这一切似乎都有道理。但我希望Areas文件夹结构包含Register和Login文件夹。它不是。我发现的唯一的东西是_ViewStart.cshtml
我知道脚手架代码有效,当我运行项目时,Register链接指向“/ Identity / Account / Register”,Login链接指向“/ Identity / Account / Login”。点击注册链接可以获得一个注册页面,其中包含“创建新帐户”文本。
但我无法在项目的任何地方找到“创建新帐户”文本。
有人能告诉我我错过了什么吗?
在asp.net核心2.1的预览期间宣布,Identity UI将被移动到新的Razor类库。 https://blogs.msdn.microsoft.com/webdev/2018/03/02/aspnetcore-2-1-identity-ui/
如果您更喜欢本地视图,仍然可以将身份视图搭建到您自己的项目中:https://docs.microsoft.com/en-us/aspnet/core/security/authentication/scaffold-identity?view=aspnetcore-2.1&tabs=visual-studio
'如果您希望所有身份代码都在您的应用程序中,以便您可以随意更改它,则可以使用新的身份脚手架将身份代码添加到您的应用程序中。所有脚手架识别代码都在特定于身份的区域文件夹中生成,以便与应用程序代码保持良好分离。
https://blogs.msdn.microsoft.com/webdev/2018/02/02/asp-net-core-2-1-roadmap/#identity
它对我来说非常好用。
派对的时间已经很晚了,但在对身份用户界面感到沮丧后,我放弃了。没有它就创建你的项目。我的建议是(当使用2.1或2.2时)创建自己的帐户/管理控制器和mvc页面。一些startup.cs调试将是必要的。还禁用发布视图(即views.dll)编译选项。也许我没有设置选项,但编译器完全忽略了页面级脚本块的任何更改。