C# ASP.NET Core Identity UserManager使用FindByEmailAsync查找不存在的用户
我一直在尝试使用ASP.NET核心标识来检查数据库中的现有用户,当我在UserManager类上调用FindByEmailAsync或其他Find方法时,它会查找Id为的实体,即使AspNetUsers db表为空 我已经仔细检查了我的Startup.cs文件,因为我几乎可以肯定这一定是DI的问题。但是我在我的服务类中使用这个EntityManager,并且这个类被注册为作用域 无论我在参数中键入什么,总是返回一些实体: 我的启动DI配置: 我的用户(来自IdentityUser): 我的服务注册(我通过DI使用UserManager): 我希望这些方法不会找到任何用户实体,但出于某种原因,它总是返回非空值C# ASP.NET Core Identity UserManager使用FindByEmailAsync查找不存在的用户,c#,asp.net-core,asp.net-identity,asp.net-core-webapi,C#,Asp.net Core,Asp.net Identity,Asp.net Core Webapi,我一直在尝试使用ASP.NET核心标识来检查数据库中的现有用户,当我在UserManager类上调用FindByEmailAsync或其他Find方法时,它会查找Id为的实体,即使AspNetUsers db表为空 我已经仔细检查了我的Startup.cs文件,因为我几乎可以肯定这一定是DI的问题。但是我在我的服务类中使用这个EntityManager,并且这个类被注册为作用域 无论我在参数中键入什么,总是返回一些实体: 我的启动DI配置: 我的用户(来自IdentityUser): 我的服
可能是身份缓存或DI问题?
findbyemailsync
方法返回一个任务,而不是用户。如果检查userExists
变量的类型,您将看到它属于Task
类型。因此,该方法不会返回id为70的用户,而是返回id为70的Task
。如果修改此行:
var userExists=\u userManager.findbyemailsync(“rasfafasf”);
通过添加wait
:
var userExists=await\u userManager.findbyemailsync(“rasfafasf”);
您将获得一个任务的实际结果,即该电子邮件的用户(null
)