Foros del Web » Programando para Internet » ASP Clásico »

Distincion entre mayusculas y minusculas en sistema login

Estas en el tema de Distincion entre mayusculas y minusculas en sistema login en el foro de ASP Clásico en Foros del Web. Saludos: Necesito que mi sistema de usuario y contraseña para dar acceso a una pagnina web distinga entre mayusculas y minusculas....
  #1 (permalink)  
Antiguo 24/02/2006, 12:53
 
Fecha de Ingreso: enero-2006
Mensajes: 169
Antigüedad: 19 años, 3 meses
Puntos: 0
De acuerdo Distincion entre mayusculas y minusculas en sistema login

Saludos:

Necesito que mi sistema de usuario y contraseña para dar acceso a una pagnina web distinga entre mayusculas y minusculas.
__________________
"La adulación es una moneda que empobrece al que la recibe"
  #2 (permalink)  
Antiguo 24/02/2006, 12:55
 
Fecha de Ingreso: enero-2006
Ubicación: Torroles (Costa der Só)
Mensajes: 1.017
Antigüedad: 19 años, 3 meses
Puntos: 7
1 - ¿Donde quieres comprobarlo: en la BD o en código?

2 - ¿Qué BD usas?

NOTA: Mira esto por si te sirve: http://www.forosdelweb.com/f15/diferenciar-mayusculas-minusculas-logueo-367879/

Un saludo
  #3 (permalink)  
Antiguo 24/02/2006, 13:12
 
Fecha de Ingreso: enero-2006
Mensajes: 169
Antigüedad: 19 años, 3 meses
Puntos: 0
Solo hay un problema el login no distingue entre mayusculas y minusculas como hago para que distinga, la contraseña si distigue pero esta no se la paso como parametro, lo que hago es que una ves que encuentra al usuario el SP hace esto mi codigo:

If (rs("pas")<>request("pas") then
respose.write "contraseña incorrecta"
end if

Por cierto abajo pongo el codigo para que entiendas mejor, me refiero al codigo que hace la consulta parametrizada sobre la variable "login" la cual es la que no distingue entre mayusculas y minusculas


set cmd = Server.CreateObject("ADODB.Command")
cmd.ActiveConnection = Conn
cmd.CommandText = "spVerifPasswdE"
cmd.CommandType = 4
cmd.CommandTimeout = 0
cmd.Prepared = true
cmd.Parameters.Append cmd.CreateParameter("@login", 200, 1,10,request.form("login"))
set rs = cmd.Execute()


Este es el SP:
set nocount on
select * from usuarios
where rtrim(login) = rtrim(@login)
__________________
"La adulación es una moneda que empobrece al que la recibe"
  #4 (permalink)  
Antiguo 24/02/2006, 13:17
 
Fecha de Ingreso: enero-2006
Ubicación: Torroles (Costa der Só)
Mensajes: 1.017
Antigüedad: 19 años, 3 meses
Puntos: 7
Prueba con esto:

if not StrComp(rs("pas"), request("pas"), 0) then respose.write "contraseña incorrecta"

Si tienes MySQL puedes usar BINARY:

set nocount on
select * from usuarios
where BINARY rtrim(login) = rtrim(@login)


Un saludo
  #5 (permalink)  
Antiguo 24/02/2006, 13:29
 
Fecha de Ingreso: enero-2006
Mensajes: 169
Antigüedad: 19 años, 3 meses
Puntos: 0
Utilizo SQL server 2000 y si pongo el SP asi:

set nocount on
select * from usuarios
where BINARY rtrim(login) = rtrim(@login)

me marca error "Incorrect syntax near 'rtrim'
__________________
"La adulación es una moneda que empobrece al que la recibe"
  #6 (permalink)  
Antiguo 24/02/2006, 14:02
 
Fecha de Ingreso: enero-2006
Ubicación: Torroles (Costa der Só)
Mensajes: 1.017
Antigüedad: 19 años, 3 meses
Puntos: 7
Obviamente, esa instrucción es para MySQL

Para MS SQL puedes convertir el tipo de string y comparar ambas cadena:

set nocount on
select * from usuarios
where
CONVERT(VARBINARY(30), rtrim(login)) = CONVERT(VARBINARY(30), rtrim(@login))

Aunque si el campo login no es de tipo VARBINARY te recomiendo que uses strComp de ASP como te he puesto antes.

Un saludo
  #7 (permalink)  
Antiguo 24/02/2006, 14:05
 
Fecha de Ingreso: enero-2006
Mensajes: 169
Antigüedad: 19 años, 3 meses
Puntos: 0
pero se puede utilizar strcomp en un SP
__________________
"La adulación es una moneda que empobrece al que la recibe"
  #8 (permalink)  
Antiguo 24/02/2006, 14:08
 
Fecha de Ingreso: enero-2006
Ubicación: Torroles (Costa der Só)
Mensajes: 1.017
Antigüedad: 19 años, 3 meses
Puntos: 7
No, pero una vez leido el recordset

set rs = cmd.Execute()

ya puedes hacer

if not StrComp(rs("pas"), request("pas"), 0) then respose.write "contraseña incorrecta"
y
if not StrComp(rs("login"), request("login"), 0) then respose.write "nombre de usuario incorrecto"


NOTA: Otra forma de hacerlo es usando COLLATE:
set nocount on
select * from usuarios
where rtrim(login) = rtrim(@login) COLLATE SQL_Latin1_General_CP1_CS_AS

Un saludo

Última edición por tammander; 24/02/2006 a las 14:16
  #9 (permalink)  
Antiguo 24/02/2006, 14:15
 
Fecha de Ingreso: enero-2006
Mensajes: 169
Antigüedad: 19 años, 3 meses
Puntos: 0
Listo ya quedo como me digiste, muchas gracias !!!!!!!
__________________
"La adulación es una moneda que empobrece al que la recibe"
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:19.