닷넷관련/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);