VS 2017では、新しいASP.NET Core Webアプリケーションを作成しました。ウィザードの2ページ目で、Webアプリケーションを選択し、認証用に "Individual User Accounts"を選択しました。
さて、/ 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です
プロジェクトを実行すると、登録コードが "/ Identity/Account/Register"を指し、[Login]リンクが "/ Identity/Account/Login"を指していることがわかります。 「登録」リンクをクリックすると、「新しいアカウントを作成する」というテキストを含む登録ページが表示されます。
しかし、プロジェクトのどこにも「Create a new account」というテキストが見つかりません。
誰かが私が欠けているものを私に言うことができますか?
Asp.net core 2.1のプレビュー中に、Identity UIが新しいRazor Class Libraryに移動されることが発表されました。 https://blogs.msdn.Microsoft.com/webdev/2018/03/02/aspnetcore-2-1-identity-ui/
ローカルビューを好むのであれば、アイデンティティービューを自分のプロジェクトに追加することも可能です。 https://docs.Microsoft.com/ja-jp/aspnet/core/security/authentication/scaffold-identity?view= aspnetcore-2.1&tabs =ビジュアルスタジオ
アイデンティティを備えたASP.NET Core 2.1には、自動的に "既定のUI"が含まれています。これは、起動時にAddDefaultIdentityを介して参照されるRazor Pagesクラスライブラリです。
プロジェクトに実際のファイルが必要な場合は、それらをスキャフォールドする必要があります。ソリューションエクスプローラでプロジェクトを右クリックし、[追加]> [新規足場アイテム]を選択します。次に、左側の[ID]リストをクリックし、[追加]ボタンをクリックします。 。新しいウィンドウが表示され、含めるページ、コンテキストなどを選択できます。好きなように設定してください。
また、AddDefaultIdentityを使用している限り、デフォルトのUIが含まれているため、これらのファイルが必要な場合は、実際にすべての足場ファイルが必要というわけではありません。それらは基本的にオーバーライドとして機能します。プロジェクトに含まれているものはすべて使用されますが、不足しているものはすべてデフォルトのUIから取得されます。
これはまた、Razor Pagesの代わりに標準のコントローラアクションやビューを使用するなどのことをしたい場合でも、デフォルトのUIが引き続きアクティブになり、優先されることを意味します。デフォルトのUIを完全にオフにしたい場合は、AddDefaultIdentityの代わりにAddIdentityまたはAddIdentityCoreを使用する必要があります。
'必要に応じて変更できるようにすべてのIDコードをアプリケーションに含める場合は、新しいIDスキャフォールドを使用してアプリケーションにIDコードを追加できます。スキャフォールドされたIDコードはすべて、ID固有の領域のフォルダーに生成されるため、アプリケーションコードからうまく分離されたままになります。
https://blogs.msdn.Microsoft.com/webdev/2018/02/02/asp-net-core-2-1-roadmap/#identity
それは私にとってとても素敵で簡単です。