Asp.net core FindByEmailAsync()始终返回null

Asp.net core FindByEmailAsync()始终返回null,asp.net-core,Asp.net Core,我的测试代码用于在不存在新用户的情况下创建新用户。 并使用findbyemailsync()方法检查用户是否存在。 但它总是返回null,因此它创建的用户数量相同 public HomeController( IUnitOfWork unitOfWork, UserManager<User> userManager) { _unitOfWork = unitOfWork; _userManager = userManager; } public

我的测试代码用于在不存在新用户的情况下创建新用户。 并使用findbyemailsync()方法检查用户是否存在。 但它总是返回null,因此它创建的用户数量相同

 public HomeController(
    IUnitOfWork unitOfWork, 
    UserManager<User> userManager)
{
    _unitOfWork = unitOfWork;
    _userManager = userManager;
}

public async Task<IActionResult> Index()
{
    var test = await _userManager.FindByEmailAsync("admin@admin.com");

    if (test == null)
    {
        // Add the user
        var newUser = new User
        {
            UserName = "mark",
            Email = "admin@admin.com",
            Created = DateTime.Now,
            Updated = DateTime.Now
        };

        _unitOfWork.UserRepository.Insert(newUser);
        _unitOfWork.Save();

        // password is 'admin'
        await _userManager.CreateAsync(newUser, "admin");
    }

    return View();
}
公共家庭控制器(
i工作单元工作单元,
用户管理器(用户管理器)
{
_unitOfWork=unitOfWork;
_userManager=userManager;
}
公共异步任务索引()
{
var test=await\u userManager.findbyemailsync(“admin@admin.com");
if(test==null)
{
//添加用户
var newUser=新用户
{
UserName=“mark”,
电子邮件=”admin@admin.com",
Created=DateTime。现在,
Updated=DateTime.Now
};
_unitOfWork.UserRepository.Insert(新用户);
_unitOfWork.Save();
//密码为“admin”
wait_userManager.CreateAsync(newUser,“admin”);
}
返回视图();
}
这是我的startup.cs

public void ConfigureServices(IServiceCollection services)
{
    // add Identity
    services.AddIdentity<User, IdentityRole>(config =>
    {
        config.User.RequireUniqueEmail = true;
        config.Password.RequiredLength = 4;
        config.Cookies.ApplicationCookie.LoginPath = "/Auth/Login";
    })
    .AddEntityFrameworkStores<MyContext>();

     /// ...
}

public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
{
    app.UseIdentity();

    /// ...
}
public void配置服务(IServiceCollection服务)
{
//添加标识
services.AddIdentity(配置=>
{
config.User.RequireUniqueEmail=true;
config.Password.RequiredLength=4;
config.Cookies.applicationcokie.LoginPath=“/Auth/Login”;
})
.AddEntityFrameworkStores();
/// ...
}
公共void配置(IApplicationBuilder应用程序、IHostingEnvironment环境、iLogger工厂)
{
app.UseIdentity();
/// ...
}
另外
config.User.RequireUniqueEmail=true
不起作用,因为它正在创建具有相同电子邮件地址的多个用户,但我没有看到任何错误


我做错了什么?请告诉我。

内部的
UserManager
实际上正在
normalizedmail
列上搜索。我会查看数据库,看看是否正确填充了这些数据。

NormalizedEmail,NormalizedUserName如果从Microsoft.AspNet.identity合并,则将为空。我已在“规范化”列中选中“存在数据,但仍然存在”,当我忘记密码并调用以下代码时,它不起作用:wait UserManager.findbyemailsync(inputEmailAddress);