ASP.Net Core dispone di SignInManager che gestisce l'autenticazione dell'utente. Uno dei metodi è PasswordSignInAsync(string username, string password, bool isPersistent, bool lockoutOnFailure)
. L'impostazione lockoutOnFailure su true dovrebbe bloccare temporaneamente l'utente dopo un certo numero di tentativi di accesso non riusciti.Blocco ASP.Net Core SignInManagerOnFailure
Guardando la tabella AspNetUsers nel database vedo il seguente:
- aumento AccessFailedCount di 1 per ogni fallito l'accesso, quando colpisce 5 rotola oltre a 0.
- Su ribaltamento a 0 LockoutTimeEnd è impostato su 5 minuti nel futuro.
- LockoutEnabled rimane comunque 0 anche dopo rollover, e l'utente può continuare il tentativo di login.
Sembra che la funzionalità destinato è quello di consentire 5 tentativi di accesso, quindi bloccare il conto per 5 minuti.
Quindi le mie domande sono sono:
- Come faccio a impostare il numero di accessi non riusciti consentiti?
- Come si imposta il periodo di blocco?
- Perché il blocco non si attiva?
sul tuo 3 ° bulletto, funziona per modello di progetto predefinito, quindi devi condividere del codice, per aiuto – tmg
ho scoperto questo. Qualsiasi utente con "LockoutEnabled = false" non verrà mai bloccato a prescindere da "LockoutTimeEnd". Mentre l'utente con "LockoutEnabled = true" verrà bloccato solo se LockoutTimeEnd> DateTime.Now. Ho impostato tutti gli utenti su "LockoutEnabled = false", disattivando in modo efficace l'intero meccanismo di blocco. –
Come l'hai impostato? quando si crea un utente nell'azione di registrazione? – tmg