Asp.net core FindByEmailAsync()始终返回null
我的测试代码用于在不存在新用户的情况下创建新用户。 并使用findbyemailsync()方法检查用户是否存在。 但它总是返回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
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);