Sto cercando di capire perché i miei utenti ottengono frequenti token non validi quando confermano la loro e-mail. Non riesco a riprodurre il problema.Perché ricevo token non validi sporadici per la verifica della posta elettronica nell'identità ASP.NET?
Ecco il programma di installazione:
userManager.UserTokenProvider = new EmailTokenProvider<User>();
Ecco come viene generato il token:
var code = await userManager.GenerateEmailConfirmationTokenAsync(user.Id);
Ecco come è verificato:
var result = await userManager.ConfirmEmailAsync(user.Id, code);
Capisco che il EmailTokenProvider
utilizza timbro di sicurezza per invalidazione. La mia comprensione è che questo timbro cambia solo quando modifiche significative all'entità Utente sono fatte come cambiare la password o il nome utente. Tuttavia ricevo invalidi invalidi molto più spesso perché questa sia l'unica spiegazione.
Sto cercando qualsiasi puntatore che possa aiutarmi a far luce sul perché questo si sta verificando.
Edit:
Ho scavato intorno al codice sorgente (la documentazione è molto scarsa) e come @trailmax rilevare sotto EmailTokenProvider
è sbagliato per questo caso d'uso. Si basa su TotpSecurityStampBasedTokenProvider
che ha timeout codificato su token a 3 minuti!
* Si basa su TotpSecurityStampBasedTokenProvider che ha timeout hardcoded su token a 3 minuti! * Questo è fuorviante, il timestep è 3 minuti ma 'ValidateCode' contiene' for (int index = -2; index <= 2; ++ indice) 'che consente un token per più di 3 minuti. Ma non di molto :) –