その際以下の認証機能を追加します
・メニューの「新規作成」→「プロジェクト」→「ASP .Net CORE MVCアプリケーション」で【OK】を押す。
・「Webアプリケーション(モデル ビューコントローラー)」「認証の変更」「個別のユーザーアカウント」を選択して【OK】を押す。
これでプロジェクトファイルとソースコード一式が生成されます。
appsettings.json の DB接続の項目を変更します。
appsettings.json
"ConnectionStrings": {
"DefaultConnection": "Server=(localdb)\\mssqllocaldb;Database=aspnet-TestLogin4-3FFC9AB5-5122-4BFD-9097-4F6113EE0EA3;Trusted_Connection=True;MultipleActiveResultSets=true"
},
これの
"DefaultConnection": "Server=(localdb)\\mssqllocaldb;
DefaultConnectionを ローカルDBからSQL Server に変更します ↓
PCの名前が MYPCの場合
"DefaultConnection": "Server=MYPC\\SQLEXPRESS;
またデータベース名はデフォルトでは
aspnet-TestLogin4-3FFC9AB5-5122-4BFD-9097-4F6113EE0EA3 といった長い名前がつけられます。
これも好きな名前に変えておきます。
Database=aspnet-TestLogin4-3FFC9AB5-5122-4BFD-9097-4F6113EE0EA3;
↓ (データベース名を mydb に変更します)
Database=mydb;
パッケージマネージャーコンソールから
Update-Database
と入力します。
PowerShellを開き、プロジェクトがあるディレクトリに移動してから
dotnet ef database update
と入力します。
以上です。
ローカルで動作することを確認します
(10GBまで無料の SQL Server 2017 Express をインストールします) https://www.microsoft.com/ja-jp/sql-server/sql-server-editions-express
https://go.microsoft.com/fwlink/?linkid=870039
せっかく マルチプラットフォーム対応の .NET Core なのでデータベースをMS以外のものに変更してみます。
– Microsoft.EntityFrameworkCore.SQLite
– Microsoft.EntityFrameworkCore.SQLite.Desgin
Startup.cs の以下を書き換えます
services.AddDbContext<ApplicationDbContext>(options =>
options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection")));
↓ 「UseSqlServer」を「UseSqlite」に変更する
services.AddDbContext<ApplicationDbContext>(options =>
options.UseSqlite(Configuration.GetConnectionString("DefaultConnection")));
}
SQLServerの場合は接続文字列がセットされていますが、そこを ファイル名に変更します。
"ConnectionStrings": {
"DefaultConnection": "Server=MYPC\\SQLEXPRESS;Database=test_user_auth_db;Trusted_Connection=True;MultipleActiveResultSets=true"
},
↓
"ConnectionStrings": {
"DefaultConnection": "Filename=./mydata.db"
},
Update-Database
これでアプリを実行すると SQLiteを使ってユーザー認証アプリを作成することができます。
https://docs.microsoft.com/ja-jp/ef/core/providers/sqlite/limitations