この記事の目的
この記事は、Githubで公開されているaspnetcore.IdentityのMVCサンプルアプリケーションをPostgres対応させることを目的としています。
本題
Repository
ここで、完成したアプリケーションを公開しています。
変更した点
Target frameworkの変更
ターゲットフレームワークが明示的に指定されていなかったので、dotnet core 3.1をターゲットとするようにプロジェクトファイルの設定を変更しました。
Nuget packageのインストール
もともとのサンプルでは、サンプルの実行に必要なモジュールをプロジェクト参照していました。今回は、すぐに使えるサンプルが必要でしたので、プロジェクト参照をやめて、Nuget packageからインストールして使うように変更しました。追加したパッケージの一覧は以下の通りです。
- Microsoft.AspNetCore.Diagnostics.EntityFrameworkCore
- Microsoft.AspNetCore.Identity
- Microsoft.AspNetCore.Identity.EntityFrameworkCore
- Microsoft.EntityFrameworkCore
- Microsoft.EntityFrameworkCore.Design
- Microsoft.EntityFrameworkCore.Relational
- Microsoft.EntityFrameworkCore.Sqlite
- Microsoft.EntityFrameworkCore.SqlServer
- Npgsql.EntityFrameworkCore.PostgreSQL
- Postgres対応のため、インストールしました。
postgres用設定の追加(appsettings.json)
appsettings.jsonにDefaultConnectionStringの設定があります。こちらの設定に、Postgres用の設定を追加しました。ローカルにPostgresをインストールしていない場合やSQLiteを使いたい場合は適宜コメントアウトを外して使うことで対応ができます。
postgres用設定の追加(Startup.cs)
UsePostgresの設定を追加しました。
QRCode.jsの追加
MVCのサンプルには、二要素認証を行うときにQRコードを表示する実装がされていませんでしたので、表示されるようにしました。手でコードを入力するのは難しかったです。
使い方
GithubからソースをCloneして、
Databaseの設定を変更して、
実行する。
あとは、必要に応じてユーザーの登録や二要素認証の設定をすれば、asp.net core mvcで二要素認証を使ったアプリケーションの動作を確認することができます。