2011-02-08 21 views
6

Attualmente ho un problema strano con l'autenticazione ASP.Net. Considerate le due righe seguenti:FormsAuthentication.Authenticate non riesce ad autenticare

MembershipCreateStatus ct = new MembershipCreateStatus(); 
Membership.CreateUser("admin", "mypassword", "[email protected]", "1", "1", true, out ct); 

Ciò registrare il mio utente nel mio database. Ho verificato questo. Tuttavia, quando si esegue questo subito dopo:

FormsAuthentication.Authenticate("admin", "mypassword"); 

l'autenticazione non riesce. La cosa strana è che so per un fatto che l'utente non esiste nel db, e che è ulteriormente confermata se corro

MembershipUserCollection uc = Membership.FindUsersByName("admin"); 

e UC lo fa tenere il mio utente admin withe tutte le informazioni corretta. Qualche idea o suggerimento da parte di chiunque sul perché l'autenticazione restituisca false?

+0

L'intera sequenza contiene una sola richiesta http? Potresti provare a farlo nel corso di due richieste separate. Che ne dici di creare "admin" una volta, Session.Abandon(), ricaricare la pagina e vedere se sei in grado di autenticarti. – xanadont

+0

no. Nemmeno se provo ad autenticarmi su una pagina separata. Il problema deve provenire dalla parte della password, giusto? Voglio dire cos'altro potrebbe andare storto se l'utente esiste? – snwr

risposta

4

Ho imparato qualcosa da un po 'di tempo fa - quando cercavo informazioni su MSDN sempre leggi la sezione commenti. Sarai sorpreso che di solito contiene le informazioni più vitali che, se non coperte, ti possono intrappolare per ore a volte giorni. Vedere quella sezione per quel metodo here. Quindi chiama ValidateUser per autorizzare che è diverso dall'autenticazione. Dai uno sguardo allo here.

+1

Ahh grazie. Ciò ha senso. È facile perdersi in msdn e non leggere la sezione commenti in ogni pagina heh. – snwr

+0

Molte notti di sonno perse lì per rendermene conto di recente, che in realtà consisteva nel rispondere alle domande su questo sito. Ho avuto 2-3 domande a cui ho risposto di seguito, quindi ho cercato di capire se questo è il caso al lavoro e in genere è del 70% quando c'è una situazione difficile: provalo tu stesso e essere sorpreso. Quindi, di nuovo, "Commenti" sarebbe molto più leggibile se fosse in caratteri rossi o ancora meglio chiamasse quella sezione "Importante". Una cosa così piccola, ma Microsoft non lo cambierà mai perché è forse parte delle loro tattiche di offuscamento per mantenere gli sviluppatori nell'oscurità –

Problemi correlati