Si guardas en la bd las claves codificadas pues para comparar luego en loguin con una clave ingresada debes codificar la misma, no decodificar algo que no esta codificado como lo estas haciendo. Al igual que no uses LCase() en el string SQL.
Para identificar usurios te propongo lo siguiente: (lo arme en poco tiempo, espero lo entiendas y te sea útil)
En la aplicación (en un include común a todas las páginas)
definimos los tipos de usuarios en una matriz:
Código:
dim usrt(1,4) '5 tipos de usuarios en este caso
usrt(0,0) = 1
usrt(1,0) = "Administrador"
usrt(0,1) = 2
usrt(1,1) = "Amigo"
usrt(0,2) = 4
usrt(1,2) = "Familiar"
usrt(0,3) = 8
usrt(1,3) = "Compañero de Trabajo"
usrt(0,4) = 16
usrt(1,4) = "Compañero de Estudio"
El valor numérico es el
nivel del tipo de usuario, el mismo debe ser siempre el valor del tipo anterior multiplicado por dos.
El otro valor es la descripción del tipo de usuario.
Ahora definiariamos la
tablita de usuarios usuarios usuario (texto 20) clave principal
clave (texto 20)
nombre (texto 80)
nivel (numerico entero)
Utilizamos el campo nivel para identificar a qué tipos de usuarios pertece el usuario.
La forma de hacerlo es sumando los niveles de los tipos de usuarios en la que el usario es partícipe.
Por ejemplo: si el usuario es un Amigo, el valor de su nivel seria 2; si el usuario es un Amigo y un Compañero de Trabajo, su nivel seria 2 + 8 = 10.
El
loguin:
Código:
dim usuario, clave, usr_nivel, nombre
usuario = request("usuario")
clave = request("clave")
sql = "select nombre, nivel from usuarios where usuario = '" & usuario & "' and clave = '" & clave & "'"
'ya tendria que estar el objeto recordset y connecton instanciados.
set ors = ocon.execute(sql)
'hagamos de cuenta que siempre existe el usuario, vos despues lo adaptas
usr_nivel = ors("nivel")
nombre = ors("nombre")
ors.close
'destruimos los objetos
Ahora que ya tenemos todos los datos, hay que definir en
cada página de nuestro sitio qué tipos de usuario aceptaremos.
Código:
dim sec_nivel
sec_nivel = 8 + 16
'dejaremos pasar a los compañeros tanto de trabajo como de estudio
if usr_nivel and sec_nivel then
'sos bienvenido
else
'fuera bicho!
end if
'ahora para mostrar a que tipo de usuario pertence:
response.write("<strong>" & nombre & "</strong>: ")
for i = 0 to ubound(usrt,2)
if usrt(0,i) and usr_nivel then response.write(usrt(1,i) & ", ")
next
'habria que mejorar esto para que no aparezca la coma al final, pero bue, la idea está!
Esto es a modo de ejemplo, faltan muchas cosas como validar usr, clave, encriptar, etc.
Como anticipé lo armé medio rapidito, asi que cualquier cosa me volves a preguntar, adioooooos!