Autentificacion De Usuarios Con Winforms ASP
Enviado por cigvEnsayos • 18 de Septiembre de 2011 • 1.200 Palabras (5 Páginas) • 756 Visitas
ASP .NET: Autenticar Usuario con Formularios
Entregare un pequeño tutorial para autenticar usuarios basado en formularios. Usaremos Visual Studio 2005 mas Framework .NET 2.0, ademas le daremos un vistazo al manejo de variables de sesiones. Manejaremos los usuarios del sitio web via web.config.
Primero que nada crearemos un nuevo sitio web en lenguaje Visual Basic. Le agregaremos una pagina que llamaremos login.aspx en el cual le agregaremos el control de Login que trae la Barra de Herramientas.
Los colores y fuente de letras de la caja del Login queda a gusto del programador
Luego abriremos nuestro archivo web.config y agregaremos el siguiente codigo que le indicara a nuestro sitio web que todas las paginas necesitaran auntentificarse antes ser accesadas.
<authorization>
<deny users=“?“/></authorization>
<authentication mode=“Forms“>
<forms name=“frm“ path=“/“ loginUrl=“login.aspx“ protection=“All“ timeout=“30“>
<dentials passwordFormat=“Clear“>
<user name=“user01“ password=“pass1“/>
<user name=“user02“ password=“pass2“/>
</credentials>
</forms>
</authentication>
Este codigo se puede colocar despues de la etiqueta
<system.web>
En el codigo anterior agregamos 2 usuarios que seran los permitidos a entrar al sitio asi como sus contraseñas.
Ahora iremos con la pagina logina.spx. En el evento “Login1_Authenticate” agregaremos este codigo:
If FormsAuthentication.Authenticate(Login1.UserName.ToString, Login1.Password.ToString) Then
Session.Add(“id_user”, “12345678-9″)
FormsAuthentication.RedirectFromLoginPage(Login1.UserName.ToString, Login1.RememberMeSet)
End If
Aqui hicimos 2 cosas: Primero verificar contra el web.config el usuario y password que ingresamos. Si estan correctos, crearemos una variable de sesion llamada id_user que tendra el valor 12345678-9, y luego redireccionaremos a la pagina Default.aspx que sera la pagina por defecto. Tambien funcionara si queremos entrar a otra pagina del sitio en particular (lo veremos mas adelante).
Ahora iremos sobre el codigo VB de la pagina Default.aspx. Vamos a mostrar algunos datos que ya tenemos por el metodo de autenticacion que estan en las credenciales.
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Response.Write(“<h1>Pagina Principal</h1>”)
‘verificamos autenticacion
If User.Identity.IsAuthenticated Then
‘desplegamos la informacion de las credenciales
displayCredentials.Text = “Bienvenido : ” & User.Identity.Name & “” & _
“
Tipo de Autentificacion Usada : ” & User.Identity.AuthenticationType & ““
End If
End Sub
A la pagina default.aspx le agregaremos un boton para salir de la zona de aunteticacion. El boton lo denominaremos SignOut y le asinaremos el sgte. codigo:
Protected Sub cmdSignOut_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles cmdSignOut.Click
‘borrar sesion
Session.Clear()
Session.Abandon()
‘delete the users auth cookie and sign out
FormsAuthentication.SignOut()
‘redirect the user to their referring page
Response.Redirect(Request.UrlReferrer.ToString())
End Sub
Aqui cerraremos la sesion de variables y la credencial que nos dio el sitio y nos envia automaticamente a la pagina de login.
Ahora agregaremos una pagina que llamara reportes.aspx, la cual sera llamada por un hipervinculo desde la pagina default.aspx. Esta pagina mostrara ademas de los datos del usuario, el valor de la variable de sesion. Pero antes debemos agregar una seccion para nuestras variables de sesion en el web.config para su uso. Agregamo lo sgte. en la seccion Session State:
<sessionState
mode=”InProc”
stateConnectionString=”tcpip=127.0.0.1:42424″
sqlConnectionString=”data source=127.0.0.1;Trusted_Connection=yes”
cookieless=”false”
timeout=”1″
/>
Nuestras variables duraran 1 minuto para diferenciarla del timeout del login que es de 30 minutos.
En la pagina de reportes, ademas agregaremos un boton para volver a la pagina principal, se llamara btnVolver y el codigo de la pagina sera el sgte:
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Response.Write(“<h1>menu de reportes de gestion</h1>”)
If User.Identity.IsAuthenticated Then
‘datos de la credencial
Response.Write(“Bienvenido : ” & User.Identity.Name & “” & _
“
Tipo de Autentificacion Usada : ” & User.Identity.AuthenticationType & ““)
End If
Response.Write(“
id usuario = ” & Session(“id_user”))
End Sub
Protected Sub btnVolver_Click(ByVal sender As Object, ByVal
...