Sto usando l'inizializzatore DropCreateDatabaseAlways
così il mio database viene distrutto ogni volta che avvio l'applicazione (almeno lo spero). La cosa divertente è che mi vedo ancora come connesso. Ricevo l'attributo Authorize
e posso fare cose pericolose. Ciò è probabilmente dovuto ai cookie residui dei test precedenti.ASP.NET MVC autentica e autorizza utenti inesistenti
La parte di registrazione/accesso della mia app è il modello di applicazione Internet MVC 4 non toccato. Non dovrebbe ASP.NET verificare i valori del cookie rispetto agli utenti salvati nel DB? WebSecurity.IsAuthenticated
restituisce true e WebSecurity.CurrentUserName
restituisce il nome. L'unica cosa che funziona come previsto è WebSecurity.CurrentUserId
che restituisce -1. Sono un principiante quindi posso solo supporre che questo sia perché UserId
non è memorizzato nel cookie e deve essere recuperato dal database.
Ho ragione? In tal caso, significa che dovrei sempre usare WebSecurity.CurrentUserId
per determinare se un utente ha effettuato l'accesso? WebSecurity.IsAuthenticated
e User.Identity.IsAuthenticated
sembrano abbastanza inutili in quel caso. Posso cancellare l'account di un utente e lui o lei rimane inalterato. Cosa dovrebbe essere fatto in modo diverso se sbaglio?
Devo chiedere. Importa davvero? In produzione, quanto spesso butti via il database? Mai? Quindi qual è il problema? Se sei preoccupato, non rendere persistente il cookie (rimuovi le caselle di controllo che mantengono l'accesso e imposta false per cookie persistenti). Sì, puoi eliminarli e se sono attualmente connessi possono comunque avere accesso, ma non appena chiudono il browser non possono accedere nuovamente. –