ASP.NETコアを変更した後にログインに失敗する

.net-core asp.net-core asp.net-identity entity-framework-core identity

質問

私は、ASP.NET Core 1.0とアイデンティティを使用して、ユーザーの認証と承認を行っています。 1つのことを除いてすべて正常に動作します。

ユーザーがパスワードをリセットまたは変更すると、ASP.NETアプリケーションが再起動されるまで、新しい資格情報でサインインすることはできません。新しいパスワードがデータベースに正常に保存されたことを意味しますが、メソッド_signInManager.PasswordSignInAsync()は現在のデータを使用せず、古いデータを使用します。 EF CoreやSignInManager / UserStoreにキャッシュのようなものがあるようです。

登録後のサインインもうまくいきますが、パスワードのリセットや変更後の問題です。

人気のある回答

その問題の原因を発見しました。Authは、別のMiddleWareで実行され、初期設定が間違っていて古いEF DbContextを使用しています。

DIでDbContextを使用することは、ASP.NETコアにとって大きな問題です。 DbContextは、単純なusingステートメントで定義されたかなり小さなスコープで使用する必要があります。残念ながら、ASP.NET Core IDはDIに登録されているDbContextを使用します。より良い解決策は、DbContextファクトリをDIに登録して、必要以上に小さなスコープのDbContextを作成することです。



Related

ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
このKBは合法ですか? はい、理由を学ぶ
ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
このKBは合法ですか? はい、理由を学ぶ