Ver Mensaje Individual
  #29 (permalink)  
Antiguo 10/10/2007, 14:32
Avatar de u_goldman
u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 22 años, 4 meses
Puntos: 98
Re: Un módulo de usuarios

¿Qué creen?
Ya regresé

En la sesión anterior, creamos nuestra clase encriptar y dejamos de tarea ingresar manualmente un usuario a su base de datos con el pass encriptado, de manera tal que podamos utilizar ya nuestra forma de login, entonces solo nos quedaría hacer la implementación de la encripción del pwd:

1. Incluir nuestra clase encriptar hasta arriba para ser ordenados
Código:
<!--#include file = "../componentes/encriptar.asp"-->
2. Implementar la encripcion del pwd:
Código:
	Set ObjUsuario = new usuario
	Set ObjEncriptar = new encriptar
	ObjUsuario.uname = trim(Request.Form("uname"))
	ObjUsuario.pwd = ObjEncriptar.MD5(trim(Request.Form("pwd")))
	Set ObjEncriptar = Nothing
	
	if ObjUsuario.Autentificar() then
        'Guardamos en sesion el id del usuario
        Session("usuarioID") = ObjUsuario.id
		Response.Write("Ahora si ingresaste")
	else
		Set ObjUsuario = Nothing
		Session("usuarioID") = ""
		Session("loginError") = true
		Response.Redirect("login.asp")
	end if
Sencillísimo ¿no es así?
Esto nos asegura que ni el admin de nuestro de sistema sepa los passwords de nuestros usuarios registrados, y necesariamente tendremos que crear algún tipo de sistema para reestablecer nuestra contraseña pues como dijimos, el MD5 es un "hash" unidireccional.


El código de nuestro form de login hasta el momento se debe ver así:
Código:
<!--#include file = "../conexion.asp"-->
<!--#include file = "../componentes/usuario.asp"-->
<!--#include file = "../componentes/encriptar.asp"-->
<!--#include file = "../admin/header.asp"-->
<%
Dim formaHasidoEnviada
Dim ObjUsuario
Dim strError
Dim ObjEncriptar

formaHasidoEnviada = len(Request.Form("formaEnviada")) > 0
strError = ""

if not formaHasidoEnviada then
	if Session("loginError") then
		strError = "Usuario o contraseña incorrectos, por favor intente de nuevo"
		Session.Contents.Remove("loginError")
	end if
	%>
	<div class="error"><%=strError%></div>
	<form action="login.asp" method="post" id="formaAsp">
		<input type="hidden" name="formaEnviada" value="1" />
		<input type="hidden" name="accion" value="ingresar" />
	    
		<fieldset class="forma">
			<legend>Introduzca sus datos de acceso</legend>
			<div class="formaEtiqueta">
				<label for="uname">Usuario:&nbsp;</label>
			</div>
			<div class="formaCampo">
				<input type="text" id="uname" name="uname" value="" maxlength="50" />
			</div>
			<br />
			<div class="formaEtiqueta">
				<label for="pwd">Password:&nbsp;</label>
			</div>
			<div class="formaCampo">
				<input type="password" id="pwd" name="pwd" maxlength="8" value="" />
			</div>
			<br />
			<input type="submit" value="Ingresar" class="formaBoton" />
		</fieldset>
	</form>
<%
else
	Set ObjUsuario = new usuario
	Set ObjEncriptar = new encriptar
	ObjUsuario.uname = trim(Request.Form("uname"))
	ObjUsuario.pwd = ObjEncriptar.MD5(trim(Request.Form("pwd")))
	Set ObjEncriptar = Nothing
	
	if ObjUsuario.Autentificar() then
        'Guardamos en sesion el id del usuario
        Session("usuarioID") = ObjUsuario.id
		Response.Write("Ahora si ingresaste")
	else
		Set ObjUsuario = Nothing
		Session("usuarioID") = ""
		Session("loginError") = true
		Response.Redirect("login.asp")
	end if
end if
%>
<!--#include file = "../admin/footer.asp"-->
En unos minutos, crearemos el index de nuestro administrador.

Salud
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway