我一直在嘗試使用 ASP.NET Core Identity 來檢查我的數據庫中的現有用戶,當我調用 FindByEmailAsync 或 UserManager 類上的其他 Find 方法時,即使 AspNetUsers 數據庫表為空,它也會找到具有 Id 的實體我已經仔細檢查了我的 Startup.cs 文件,因為我幾乎可以肯定它一定是 DI 的東西。但是我在我的服務類中使用了這個 EntityManager,并且這個類被注冊為 Scoped。不管我輸入什么參數,總是返回一些實體:我的啟動 DI 配置:我的用戶(來自 IdentityUser):我的服務注冊(我通過 DI 使用 UserManager):我希望這些方法不會找到任何用戶實體,但由于某種原因它總是返回非空值??赡苁巧矸菥彺婊?DI 問題?
1 回答
慕運維8079593
TA貢獻1876條經驗 獲得超5個贊
FindByEmailAsync方法返回一個Task,而不是一個用戶。如果您檢查userExists變量的類型,您將看到它的類型Task<>。因此,該方法不會返回 ID 為 70 的用戶,而是返回 ID 為 70 的用戶Task。如果修改此行:
var userExists = _userManager.FindByEmailAsync("rasfafasf");通過添加await:
var userExists = await _userManager.FindByEmailAsync("rasfafasf");您將獲得任務的實際結果,即擁有該電子郵件的用戶(null在您的情況下)。
- 1 回答
- 0 關注
- 235 瀏覽
添加回答
舉報
0/150
提交
取消
