problema con login en asp y sql

20/02/2004 - 16:33 por Laura | Informe spam
estoy haciendo un login con el siguiente codigo:

<%
user=Request.Form("user")
pass=Request.Form("pass")
'response.Write(user)
'response.Write(pass)

'
Set CONN = Server.CreateObject("ADODB.Connection")
Conn.open "base","",""
'
Dim Recordset1
Dim Recordset1_numRows

Set Recordset1 = Server.CreateObject("ADODB.Recordset")
Recordset1.ActiveConnection = "tabla"
Recordset1.Source = "SELECT * FROM dbo.tabla WHERE usuario = '" & user &"'
AND clave = '" & pass &"'"
Recordset1.CursorType = 0
Recordset1.CursorLocation = 2
Recordset1.LockType = 1
Recordset1.Open()

cantidad = recordset1.recordcount
response.Write("La cantidad de registros es: ")
response.write(cantidad)

If Recordset1.RecordCount = 1 Then
' Session("sesion")=1
' Session("id")=rs.Fields("iduser").Value
' rs.Close
' Set rs = Nothing
' conn.Close
' Set conn = Nothing
'Response.Redirect(pagina.asp)
response.Write("logueado")
Else
' rs.Close
' Set rs = Nothing
' conn.Close
' Set conn = Nothing
' error="1"
' Response.Redirect("login.asp")
response.Write("no logueado")
End If


%>
<%
Recordset1.Close()
Set Recordset1 = Nothing
conn.Close
Set conn = Nothing
%>
Lo estoy armando con ayuda de macromedia dreamweaver, pero el problema es
que si pongo el usuario y la contraseña bien, el recordcount da -1 y me dice
"no logueado". Si los pongo mal, directamente no carga la pàgina.

Tambien cree dos registros iguales en la tabla y el recordset sigue
dando -1.

Estoy desde ayer y ya no se que hacer. Algun consejo??

Preguntas similare

Leer las respuestas

#1 Maximiliano D. A.
20/02/2004 - 16:43 | Informe spam
Hola Lau, ese problema no es de SqlServer sino de como estas haciendo el
Recordset, revisa muy bien el tipo de cursor que estas usando y el tipo de
Bloqueo,

Proba usar OpenSnapshot, seguro que estas usando Opendynaset


Salu2
Maxi
Buenos Aires Argentina
Desarrollador Microsoft 3 Estrellas .NET
[Maxi_accotto[arroba]speedy[punto]com[punto]ar
MSN:


"Laura" escribió en el mensaje
news:%
Mostrar la cita
&"'
Mostrar la cita
dice
Mostrar la cita
Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.581 / Virus Database: 368 - Release Date: 10/02/2004
#2 Gustavo \The Wolf\ Cantero
20/02/2004 - 16:43 | Informe spam
Laura:
Para hacer esto deberias poner el CursorType en 3 (OpenStatic) y el
CursorLocation en 3 (UseClient). De todas formas creo que la mejor manera
de hacer esto sería usar la siguiente instrucción: "SELECT Count(*) FROM
dbo.tabla WHERE usuario = '" & user &"'
Mostrar la cita
cual te va a dar la cantidad de registros que coinciden.
Suerte!

Gustavo Cantero
Microsoft Certified Solution Developer


"Laura" escribió en el mensaje
news:%
Mostrar la cita
&"'
Mostrar la cita
dice
Mostrar la cita
#3 Laura
20/02/2004 - 17:00 | Informe spam
GRACIAS, CON ESO LO SOLUCIONE!!

"Gustavo "The Wolf" Cantero" escribió en el mensaje
news:
Mostrar la cita
el
Mostrar la cita
es
Mostrar la cita
#4 Manuel Etcheto
20/02/2004 - 21:05 | Informe spam
Laura:
Ejecutar sql con datos que ingresa el usuario es algo que
NO deberías hacer nunca (aunque te haya funcionado...)

El usuario del asp podría hacer/destruir todo lo que en tu
SQL Server tenga autorizado el user de la conexión...

Imagina que en user ingresa aa' OR 1 = 1 --
Todos los registros van a cumplir la condición porque
despues está comentada...
Y también podría agregar DELETE, UPDATE, DROP, etc. etc,
está lleno de ejemplos de inyección sql por ahí..

La solución sería stored procedures y parametros
Y que el usuario con que se conecta asp no tenga ningún
permiso sobre las tablas, solo sobre los stored...

Y si no, al menos, Command con parametros, que no solo es
seguro sino también más rápido

Si necesitas un dato, como el idUser o la cantidad de
registros tenés los parámetros de salida y el valor de
retorno, no un Recordset y encima del lado cliente que es
el objeto más "pesado" que puede tener ADO.

Suerte
Manuel

Mostrar la cita
escribió en el mensaje
Mostrar la cita
(OpenStatic) y el
Mostrar la cita
que la mejor manera
Mostrar la cita
instrucción: "SELECT Count(*) FROM
Mostrar la cita
único campo devuelto,
Mostrar la cita
mensaje
Mostrar la cita
("ADODB.Recordset")
Mostrar la cita
usuario = '" & user
Mostrar la cita
pero el problema
Mostrar la cita
recordcount da -1 y me
Mostrar la cita
carga la pàgina.
Mostrar la cita
recordset sigue
Mostrar la cita
Ads by Google
Search Busqueda sugerida