1. ホーム
  2. asp.net-core

[解決済み】AspNet Core scaffoldedアプリのLoginとRegisterページはどこにありますか?

2022-04-19 16:09:34

質問

VS 2017で、ASP.NET Core Web Applicationを新規に作成しました。 ウィザードの2ページ目で「Web Application」を選び、「Authentication」では「"Individual User Accounts"」を選びました。

では Account/Registerと/Account/Loginに関連するPagesを探そうとしています。 .

_Layout.cshtml は、クラシック MVC で行ったように、_LoginPartial.cshtml を取り込みます。

<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だけです。

scaffolded コードが動作することは分かっています。プロジェクトを実行すると、登録リンクは "/Identity/Account/Register" を指し、ログインリンクは "/Identity/Account/Login" を指し示します。 Registerのリンクをクリックすると、"Create a new account"というテキストを含む登録ページが表示されます。

しかし、プロジェクトのどこにも "Create a new account" というテキストが見当たりません。

どなたか、何が足りないか教えていただけませんか?

解決方法は?

asp.net core 2.1 のプレビュー中に、Identity UI が新しい Razor クラスライブラリに移動されることが発表されました。 https://blogs.msdn.microsoft.com/webdev/2018/03/02/aspnetcore-2-1-identity-ui/

ローカルなビューがお好みなら、Identity Views を自分のプロジェクトに scaffold することも可能です。 https://docs.microsoft.com/en-us/aspnet/core/security/authentication/scaffold-identity?view=aspnetcore-2.1&tabs=visual-studio