1
私のテストコードは、存在しない場合に新しいユーザーを作成するためのものです。 FindByEmailAsync()メソッドを使用して、ユーザーが存在するかどうかを確認します。 しかし、常にnullを返すので、同じ数のユーザーが作成されています。ここでFindByEmailAsync()は常にnullを返します
public HomeController(
IUnitOfWork unitOfWork,
UserManager<User> userManager)
{
_unitOfWork = unitOfWork;
_userManager = userManager;
}
public async Task<IActionResult> Index()
{
var test = await _userManager.FindByEmailAsync("[email protected]");
if (test == null)
{
// Add the user
var newUser = new User
{
UserName = "mark",
Email = "[email protected]",
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;
であることは、同じメールアドレスで複数のユーザーを作成しているため、動作していないが、私はすべてのエラーが表示されません。
私は間違っていますか?私に助言してください。