更改密碼ASP.NET Core後登錄失敗

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

我正在使用ASP.NET Core 1.0和身份資料來驗證和授權用戶。這一切都很好,除了一件事:

如果用戶重置或更改其密碼,則在重新啟動ASP.NET應用程序之前,他無法使用新憑據登錄。表示新密碼已成功保存在數據庫中,但Method _signInManager.PasswordSignInAsync()不使用當前數據,而是使用舊數據。似乎在EF Core或SignInManager / UserStore中有類似緩存的東西。

註冊後登錄工作也很好,重置或更改密碼後只是一個問題。

熱門答案

找到問題的原因:Auth在一個單獨的MiddleWare中完成,它具有錯誤的初始化並使用舊的EF DbContext。

將DbContext與DI一起使用是ASP.NET Core中的一個大問題。 DbContext應該在一個非常小的範圍內使用,用簡單的using語句定義。不幸的是,ASP.NET Core身份使用在DI中註冊的DbContext。更好的解決方案是將一個DbContext工廠註冊到DI,以創建一個需要它的小範圍DbContext加班。



Related

許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
這個KB合法嗎? 是的,了解原因
許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
這個KB合法嗎? 是的,了解原因