닷넷관련/ASP.NET CORE 🍔
ASP.NET CORE : signInManager.PasswordSignInAsync 의 Not Allowed 가 true 이면?
재우니
2024. 7. 9. 22:59
var result = await _signInManager.PasswordSignInAsync(model.Email, model.Password, model.RememberMe, lockoutOnFailure: true);
아이디, 비밀번호가 정확하게 맞는데, Not Allowed 가 true 로 반환되어 false 가 됩니다. 인증 자체가 안되는 것을 의미합니다.
asp.net core 8 기준으로 program.cs 에 보면, options.SignIn.RequireConfirmedAccount = true; 을 지정한게 보입니다. true 로 설정하면 사용자가 계정을 생성한 후 이메일 인증을 받아야만 로그인할 수 있도록 강제하는 것입니다. 인증 받으면 database 에 EmailConfirmed 가 true 됩니다.
builder.Services.AddIdentity<CustomIdentityUser, IdentityRole>(options =>
{
//사용자가 계정을 생성한 후 이메일 인증을 받아야만 로그인할 수 있도록 강제하는 것입니다.
//options.SignIn.RequireConfirmedAccount = true;
})
.AddEntityFrameworkStores<AspNetDbContext>()
.AddDefaultTokenProviders();
builder.Services.AddControllersWithViews();
이를 사용하지 않고 주석처리하거나, 회원가입을 할 때, EmailConfirmed 을 강제로 true 로 지정하는 방법도 존재합니다.
var user = new CustomIdentityUser { Name = model.Name, UserName = model.Email, Email = model.Email, EmailConfirmed = true};
var result = await _userManager.CreateAsync(user, model.Password);