gpt4 book ai didi

asp.net-core - FindByEmailAsync() 始终返回 null

转载 作者:行者123 更新时间:2023-12-01 16:51:34 26 4
gpt4 key购买 nike

我的测试代码用于创建新用户(如果不存在)。并使用 FindByEmailAsync() 方法检查用户是否存在。但它总是返回 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();
}

这是我的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();

/// ...
}

此外,config.User.RequireUniqueEmail = true; 不起作用,因为它使用相同的电子邮件地址创建多个用户,但我没有看到任何错误。

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

最佳答案

在内部,UserManager 实际上是在 NormalizedEmail 列上进行搜索。我会查看数据库,看看是否正确填充。

关于asp.net-core - FindByEmailAsync() 始终返回 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39494934/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com