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

Pagina de logeo

Estas en el tema de Pagina de logeo en el foro de ASP Clásico en Foros del Web. Necesito de vuestra ayuda!!! Tengo este script para una paginita de logeo, el inconveniente es que no me puedo logear con más de un usuario ...
  #1 (permalink)  
Antiguo 23/06/2010, 12:05
 
Fecha de Ingreso: marzo-2008
Mensajes: 82
Antigüedad: 16 años, 8 meses
Puntos: 0
Pagina de logeo

Necesito de vuestra ayuda!!!
Tengo este script para una paginita de logeo, el inconveniente es que no me puedo logear con más de un usuario siempre toma nada más que uno me podrían ayudar?
Gracias.

Código ASP:
Ver original
  1. function stripQuotes(strWords)
  2. stripQuotes = replace(strWords, "'", "''")
  3. end function
  4. function sanitize(strWords)
  5.  
  6. dim badChars
  7. dim newChars
  8.  
  9. badChars = array("select", "drop", ";", "--", "insert", "delete", "xp_", "#", "%", "&", "'", ";", "=", "?", "`", "|")
  10. newChars = strWords
  11.  
  12. for i = 0 to uBound(badChars)
  13. newChars = replace(newChars, badChars(i) , "")
  14. next
  15.  
  16. sanitize = newChars
  17.  
  18. end function
  19.  
  20. if Request.ServerVariables("REQUEST_METHOD") = "POST" Then
  21. strUser = sanitize( request.form("user") )
  22. strPass = sanitize( request.Form("pass") )
  23.  
  24. strSQL = "SELECT * FROM T_USERS"
  25.  
  26. Set Rs = Server.CreateObject("ADODB.Recordset")
  27. Rs.ActiveConnection = strConn
  28. Rs.Source = strSQL
  29. Rs.CursorType = 2
  30. Rs.CursorLocation = 2
  31. Rs.LockType = 1
  32. Rs.Open()
  33.  
  34. Rs.MoveFirst
  35. While Not Rs.EOF
  36.  
  37. if strUser = rs("usuario") AND strPass = rs("contrasena") Then
  38. userFound = 1
  39. theUser = rs("usuario")
  40. else
  41. userFound = 0
  42. End if
  43. Rs.MoveNext
  44.  
  45. Wend
  46.  
  47. Rs.close()
  48. set Rs = nothing
  49.  
  50. if userFound = 1 Then
  51. Session("adminLogged") = true
  52. Session("usuario") = theUser
  53. response.Redirect("./?")
  54.  
  55. else
  56. response.Redirect("login.asp?error=nouser")
  57. end if
  58. else

Última edición por Sonda; 23/06/2010 a las 12:11 Razón: Codigo desprolijo
  #2 (permalink)  
Antiguo 23/06/2010, 12:25
 
Fecha de Ingreso: octubre-2009
Mensajes: 80
Antigüedad: 15 años, 1 mes
Puntos: 2
Respuesta: Pagina de logeo

Sonda, estas sobrecargando a tu servidor de forma inecesaria, haces una consulta y luego buscas uno a uno, mejor agrega la busqueda a tu Select, asi:

strSQL = "SELECT Top 1 * FROM T_USERS WHERE usuario='"& strUser &"' AND contrasena='" & strPass & "'"

if Not Rs.EOF then
'es un usuario valido y realizas lo que quieras
else
'usuario invalido
end if
  #3 (permalink)  
Antiguo 23/06/2010, 12:29
 
Fecha de Ingreso: marzo-2008
Mensajes: 82
Antigüedad: 16 años, 8 meses
Puntos: 0
De acuerdo Respuesta: Pagina de logeo

Perfecto es verdad lo que decis jochesfor agradezco infinitamente tu ayuda. Abrazo.
  #4 (permalink)  
Antiguo 23/06/2010, 14:45
 
Fecha de Ingreso: marzo-2008
Mensajes: 82
Antigüedad: 16 años, 8 meses
Puntos: 0
De acuerdo Respuesta: Pagina de logeo

Me funciono de mil maravillas jochesfor quedo así entonces

Código ASP:
Ver original
  1. if Not Rs.EOF then
  2. 'es un usuario valido y realizas lo que quieras
  3.  
  4. if strUser = rs("usuario") AND strPass = rs("contrasena") Then
  5. response.Redirect("./?")
  6.  
  7. Session("adminLogged") = true
  8. Session("username") = theUser
  9. end if
  10.  
  11. else
  12. 'usuario invalido
  13.  
  14. response.Redirect("login.asp?error=nouser")
  15. end if
  16.  
  17. Rs.close()
  18. set Rs = nothing
  #5 (permalink)  
Antiguo 23/06/2010, 15:41
 
Fecha de Ingreso: octubre-2009
Mensajes: 80
Antigüedad: 15 años, 1 mes
Puntos: 2
Respuesta: Pagina de logeo

Con gusto, puedes agregarle antes de hacer la consulta esto:

Nombre=replace(TRIM(Nombre),"'","")
password=replace(TRIM(Clave),"'","")

para evitar el Sql Injection
  #6 (permalink)  
Antiguo 23/06/2010, 15:43
 
Fecha de Ingreso: octubre-2009
Mensajes: 80
Antigüedad: 15 años, 1 mes
Puntos: 2
Respuesta: Pagina de logeo

Sonda, no veo tu codigo completo pero creo que esto te esta sobrando,
if strUser = rs("usuario") AND strPass = rs("contrasena") Then, esto ya lo hace la consulta y no es necesario volverlo a hacer.
  #7 (permalink)  
Antiguo 24/06/2010, 06:53
 
Fecha de Ingreso: marzo-2008
Mensajes: 82
Antigüedad: 16 años, 8 meses
Puntos: 0
De acuerdo Respuesta: Pagina de logeo

Si ya lo quite y agrege replace para evitar el Sql Injection, gracias jochesfor por tu gran ayuda. Abrazo

Etiquetas: logeo
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 05:50.