0

Comme dans le titre j'essaye de forcer l'utilisateur à confirmer l'email avant de le laisser se connecter. Je faisais des choses selon le tutoriel de Microsoft et il y avait écrit que je dois ajouterAsp.net force force l'utilisateur à confirmer l'email

o.SignIn.RequireConfirmedEmail = true;

ce que je l'ai fait, mais il ne me bloque pas vous connecter même je ne confirme pas mon email

services.AddIdentity<Company, IdentityRole> 
     (o => 
     { 
     // configure identity options 
     o.Password.RequireDigit = false; 
     o.Password.RequireLowercase = false; 
     o.Password.RequireUppercase = false; 
     o.Password.RequireNonAlphanumeric = false; 
     o.Password.RequiredLength = 6; 
     o.SignIn.RequireConfirmedEmail = true; 
     o.Tokens.EmailConfirmationTokenProvider = EmailConfirmationTokenProviderName; 
     }) 
     .AddEntityFrameworkStores<ShopContext>() 
     .AddTokenProvider<ConfirmEmailDataProtectorTokenProvider<Company>>(EmailConfirmationTokenProviderName); 

J'utilise l'authentification des jetons JWT ont je fais quelque chose de plus dans ce cas que les choses qui Je montre?

Répondre

2

Ajouter vérifier si le compte est confirmé début Login l'action

var user = await _userManager.FindByEmailAsync(model.Email); 
     if (user != null) 
     { 
      if (!await _userManager.IsEmailConfirmedAsync(user)) 
      { 
       ModelState.AddModelError(string.Empty, 
           "You must have a confirmed email to log in."); 
       return View(model); 
      } 
     } 

Souvenez-vous également éviter au sujet de nouveaux utilisateurs enregistrés d'être connecté automatiquement par commentaire await _signInManager.SignInAsync(user, isPersistent: false); dans Register l'action

Pour en savoir plus lire official docs

+0

Je fais déjà des choses comme vous montrez, donc y a-t-il une raison pour ajouter cette ligne o.SignIn.RequireConfirmedEmail = true ;? – Stefan

+1

'SignIn.RequireConfirmedEmail = true;' envoie un mail avec un lien d'activation. Ce lien est nécessaire lorsque vous avez appliqué le code ci-dessus pour vous connecter car, sans activation, vous ne pouvez pas vous connecter –