2011-02-08 15 views
6

Actualmente tengo un problema extraño con la autenticación ASP.Net. Considere las dos siguientes líneas:FormsAuthentication.Authenticate no se puede autenticar

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

Esto se registra mi usuario en mi base de datos. Yo he verificado esto Sin embargo, cuando corro esto inmediatamente después:

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

falla la autenticación. Lo extraño es que sé que es un hecho que el usuario existe en el PP, y que se confirma aún más si corro

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

y UC nos depara mi usuario de administración de aparentes toda la información adecuada. ¿Alguna idea o sugerencia de alguien sobre por qué Authenticate devolvería false?

+0

¿La secuencia completa es una solicitud http única? Puede intentar hacer esto en el transcurso de dos solicitudes por separado. ¿Qué tal crear "admin" por única vez, Session.Abandon(), volver a cargar la página y luego ver si puede autenticarse. – xanadont

+0

Hrm no. Ni siquiera si trato de autenticar en una página separada. El problema tiene que provenir de la parte de la contraseña, ¿verdad? Quiero decir, ¿qué más podría salir mal si el usuario existe? – snwr

Respuesta

4

Me enteré de algo hace un tiempo: al buscar información en MSDN siempre lea la sección de comentarios. Te sorprenderá que generalmente contenga la información más vital que, si no está cubierta, puede atraparte durante horas a veces días. Vea esa sección para ese método here. Luego llame al ValidateUser para autorizar que es diferente de authenticate. Eche un vistazo here.

+1

Ahh gracias. Eso tiene sentido. Es fácil perderse en msdn y no leer la sección de comentarios en cada página je. – snwr

+0

Muchas noches de sueño perdieron allí para darse cuenta de esto recientemente, que fue en realidad de contestar preguntas en este sitio. Tenía dos o tres preguntas que respondí seguidas, que eran solo de allí, así que luego intenté ver si ese era el caso en el trabajo, y es más que nada alrededor del 70% cuando hay una situación complicada: pruébelo usted mismo y lo hará. quedar asombrado. Por otra parte, 'Comentarios' sería mucho más legible si estuviera en letra roja o, mejor aún, llame a esa sección 'Importante'. Algo tan pequeño pero Microsoft nunca lo cambiará porque posiblemente sea parte de sus tácticas de ofuscación para mantener a los desarrolladores en la oscuridad –

Cuestiones relacionadas