miércoles, 30 de mayo de 2007

autenticar usuario en asp.net

Bueno esta es una solucion simple y en la realidad n del todo eficiente pero es añgo sencillo y que puede ayudarlos, esta orientado obviamente para educacion mas no para uso final.

Empezemos con un escenario, tienes dos webform; uno que se llame login.aspx y otro acceso.aspx, expliquemos el uso el primero como su nombre lo indica que se use para autenticar el acceso a los usuarios, y el otro es el webform al que el usuario ya autenticado ingrese. El problema es que si copias el la direccion del webform acceso.aspx y lo pegas en otra ventana abre automaticamente el webform acceso.aspx, con lo cual en la practica se tendria una falta de seguridad, lo ideal seria que si se copia la direccion y se pega en otra ventana al no haber pasado por la autenticacion te redirecciona automaticamente a la pagina login.aspx; el codigo seria el siguiente:


Session("user") = usuario

Response.Redirect("webform2.aspx")


el codigo anterior se pondria en el code-behin de el webform login, solo se aumentaria la primera linea la segunda es una indicacion donde se colocaria.


If Session("user") = Nothing Then

   Response.Redirect("default.aspx")

End If


este codigo se colocaria en el evento page_load de el webform acceso.aspx(al q se quiere evitar el ingreso).

Explicando un poco: El primer codigo lo q hace es cada vez que se autentica un usuario antes de redireccionarlo a la segunda pagina se llena la variable session("user") con el nombre del usuario. El segundo codigo verifica que tiene q tener algo escrito si no es asi y esta vacia la variable(no ha habido auntenticacion) te redirecciona a la primera webform para que se haga la autenticacion. Ahora quiza se pregunten porq se iguala a una cadena vacia, porq las variables en session se inicializan cada vez que se inicia una sesion como su nombre lo indica, en otras palabas al copiar y pegar el la nueva ventana se inicia una nueva sesion por lo tanto se inicializa la variable y como no ha pasado por la autenticacion, no se ha llenado ningun valor y este es una cadena vacia, con lo cual al detectarla te redirecciona a el webform login.aspx.
Esa variable se puede usar tambien para llenar en el segundo webform (acceso.aspx) con el nombre del usuario, con una etiqueta por ejemplo lbluser, el codigo seria

lbluser.text = session("user")

Bueno aqui termina, cualquier pregunta comentenla, si puedo les ayudare y si no tratare, y si ni aun asi, busquen a alguien mas jaja, bye Bendiciones

No hay comentarios: