読者です 読者をやめる 読者になる 読者になる

ASP.NET Identity でユーザーを作成するときは必ず UserManager を使うこと

マイグレーションで Seed データを投入するとき、 ユーザーを作成するところで UserManager を使わずに、 IdentityDbContext を使って直接データベースに保存してしまっていた。

そのせいで、ログインするときに ClaimsIdentityFactory が内部でクレームを作成する箇所で ArgumentNullException が発生して嵌った。

ユーザー作成では AspNetUsers テーブルにユーザー情報を追加するだけではダメだったのか。 今まで IUserStore を実装したカスタムストアばかり使っていたから、こんなところで躓いてしまった。

ASP.NET Identity のソースコードを見てなんとか解決できたけど、半日費やしたよ…。 ASP.NET Identity を素直に使うなら、ユーザー作成はちゃんと UserManager を通さないとダメ。 ゼッタイ。