web-dev-qa-db-ja.com

AspNet Coreソーシャルアプリケーションのログインページと登録ページはどこにありますか。

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です

Areas file structure

プロジェクトを実行すると、登録コードが "/ Identity/Account/Register"を指し、[Login]リンクが "/ Identity/Account/Login"を指していることがわかります。 「登録」リンクをクリックすると、「新しいアカウントを作成する」というテキストを含む登録ページが表示されます。

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

誰かが私が欠けているものを私に言うことができますか?

50

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 =ビジュアルスタジオ

46
Joe Audette

アイデンティティを備えたASP.NET Core 2.1には、自動的に "既定のUI"が含まれています。これは、起動時にAddDefaultIdentityを介して参照されるRazor Pagesクラスライブラリです。

プロジェクトに実際のファイルが必要な場合は、それらをスキャフォールドする必要があります。ソリューションエクスプローラでプロジェクトを右クリックし、[追加]> [新規足場アイテム]を選択します。次に、左側の[ID]リストをクリックし、[追加]ボタンをクリックします。 。新しいウィンドウが表示され、含めるページ、コンテキストなどを選択できます。好きなように設定してください。

また、AddDefaultIdentityを使用している限り、デフォルトのUIが含まれているため、これらのファイルが必要な場合は、実際にすべての足場ファイルが必要というわけではありません。それらは基本的にオーバーライドとして機能します。プロジェクトに含まれているものはすべて使用されますが、不足しているものはすべてデフォルトのUIから取得されます。

これはまた、Razor Pagesの代わりに標準のコントローラアクションやビューを使用するなどのことをしたい場合でも、デフォルトのUIが引き続きアクティブになり、優先されることを意味します。デフォルトのUIを完全にオフにしたい場合は、AddDefaultIdentityの代わりにAddIdentityまたはAddIdentityCoreを使用する必要があります。

差出人

12
panky sharma

'必要に応じて変更できるようにすべてのIDコードをアプリケーションに含める場合は、新しいIDスキャフォールドを使用してアプリケーションにIDコードを追加できます。スキャフォールドされたIDコードはすべて、ID固有の領域のフォルダーに生成されるため、アプリケーションコードからうまく分離されたままになります。

https://blogs.msdn.Microsoft.com/webdev/2018/02/02/asp-net-core-2-1-roadmap/#identity

それは私にとってとても素敵で簡単です。

0
GioLopera