我一直在嘗試使用 ASP.NET Core Identity 來檢查我的數(shù)據(jù)庫中的現(xiàn)有用戶,當(dāng)我調(diào)用 FindByEmailAsync 或 UserManager 類上的其他 Find 方法時,即使 AspNetUsers 數(shù)據(jù)庫表為空,它也會找到具有 Id 的實體我已經(jīng)仔細(xì)檢查了我的 Startup.cs 文件,因為我?guī)缀蹩梢钥隙ㄋ欢ㄊ?DI 的東西。但是我在我的服務(wù)類中使用了這個 EntityManager,并且這個類被注冊為 Scoped。不管我輸入什么參數(shù),總是返回一些實體:我的啟動 DI 配置:我的用戶(來自 IdentityUser):我的服務(wù)注冊(我通過 DI 使用 UserManager):我希望這些方法不會找到任何用戶實體,但由于某種原因它總是返回非空值??赡苁巧矸菥彺婊?DI 問題?
1 回答

慕運維8079593
TA貢獻(xiàn)1876條經(jīng)驗 獲得超5個贊
FindByEmailAsync
方法返回一個Task
,而不是一個用戶。如果您檢查userExists
變量的類型,您將看到它的類型Task<>
。因此,該方法不會返回 ID 為 70 的用戶,而是返回 ID 為 70 的用戶Task
。如果修改此行:
var userExists = _userManager.FindByEmailAsync("rasfafasf");
通過添加await
:
var userExists = await _userManager.FindByEmailAsync("rasfafasf");
您將獲得任務(wù)的實際結(jié)果,即擁有該電子郵件的用戶(null
在您的情況下)。
- 1 回答
- 0 關(guān)注
- 217 瀏覽
添加回答
舉報
0/150
提交
取消