我的测试代码用于创建新用户(如果不存在).并使用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();
}
Run Code Online (Sandbox Code Playgroud)
这是我的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();
/// ...
}
Run Code Online (Sandbox Code Playgroud)
也config.User.RequireUniqueEmail = true;不起作用,因为它创建了多个具有相同电子邮件地址的用户,但我没有看到任何错误.
我究竟做错了什么?请建议我.
| 归档时间: |
|
| 查看次数: |
2162 次 |
| 最近记录: |