Foros del Web » Programando para Internet » ASPX (.net) »

Login en ASP.Net

Estas en el tema de Login en ASP.Net en el foro de ASPX (.net) en Foros del Web. Hola denuevo..tengo un problema al crear un login en asp.net bueno el dilema es el siguiente necesito regularizar : usuario (textbox) contraseña (textbox) empresa (dropdownlist ...
  #1 (permalink)  
Antiguo 27/09/2010, 14:38
 
Fecha de Ingreso: septiembre-2010
Mensajes: 27
Antigüedad: 13 años, 7 meses
Puntos: 0
Sonrisa Login en ASP.Net

Hola denuevo..tengo un problema al crear un login en asp.net
bueno el dilema es el siguiente
necesito regularizar :
usuario (textbox)
contraseña (textbox)
empresa (dropdownlist que muestra empresa1 y empresa2)
la cosa es comparar estos datos con los que están en la base de datos en la tabla Usuarios
userUsuario
userContraseña
userEmpresa

como lo podria hacer?
  #2 (permalink)  
Antiguo 28/09/2010, 01:59
Avatar de triqui  
Fecha de Ingreso: diciembre-2008
Ubicación: Zaragoza(España)
Mensajes: 624
Antigüedad: 15 años, 5 meses
Puntos: 31
Respuesta: Login en ASP.Net

1.- Primero tienes que validar que lo que te metan en el textbox sea algo distinto de nulo o números y cosas así.

2.- Luego mandas una consulta de este tipo.

Código SQL:
Ver original
  1. IF((SELECT COUNT(*) FROM TablaUsuario WHERE USER = 'Pepe' AND Pass ='12345')>0)
  2. 'Correcto'
  3. ELSE
  4. 'Usuario Invalido'

3.-Entonces coger los datos que te arroja la sql, correcto ó Usuario Invalido.

4.a)Si es Usuario Invalido se lo dices con un mensaje

4.b)Si es correcto le haces un response.redirect("~/UsuarioLogeado.aspx)
__________________
La nueva red social de quinielas quiniela resultados
Cazaresultados Futbol base en directo
  #3 (permalink)  
Antiguo 28/09/2010, 06:22
 
Fecha de Ingreso: septiembre-2010
Mensajes: 27
Antigüedad: 13 años, 7 meses
Puntos: 0
Respuesta: Login en ASP.Net

Cita:
Iniciado por triqui Ver Mensaje
1.- Primero tienes que validar que lo que te metan en el textbox sea algo distinto de nulo o números y cosas así.

2.- Luego mandas una consulta de este tipo.

Código SQL:
Ver original
  1. IF((SELECT COUNT(*) FROM TablaUsuario WHERE USER = 'Pepe' AND Pass ='12345')>0)
  2. 'Correcto'
  3. ELSE
  4. 'Usuario Invalido'

3.-Entonces coger los datos que te arroja la sql, correcto ó Usuario Invalido.

4.a)Si es Usuario Invalido se lo dices con un mensaje

4.b)Si es correcto le haces un response.redirect("~/UsuarioLogeado.aspx)
Hola amigo trate de hacer lo que tu me dijiste
lo puse asi en el boton ingresar que es el que da la accion para ingresar

Código:
If (("SELECT count(*) FROM Usuarios WHERE userUsuario ='" & usuario & "' AND userContraseña ='" & contraseña & "' AND userEmpresa ='" & empresa & "'") > 0) Then
                MsgBox("bien")
            Else
                MsgBox("mal")
            End If
pero me tira el siguiente error:
la conversion de la cadena "SELECT count(*) FROM Usuarios WH" en el tipo 'Double' no es valida.
no entiendo a que se refiere...por favor me podrías ayudar con esto
  #4 (permalink)  
Antiguo 28/09/2010, 07:00
 
Fecha de Ingreso: septiembre-2010
Mensajes: 27
Antigüedad: 13 años, 7 meses
Puntos: 0
Respuesta: Login en ASP.Net

Cita:
Iniciado por pipeman2009 Ver Mensaje
Hola amigo trate de hacer lo que tu me dijiste
lo puse asi en el boton ingresar que es el que da la accion para ingresar

Código:
If (("SELECT count(*) FROM Usuarios WHERE userUsuario ='" & usuario & "' AND userContraseña ='" & contraseña & "' AND userEmpresa ='" & empresa & "'") > 0) Then
                MsgBox("bien")
            Else
                MsgBox("mal")
            End If
pero me tira el siguiente error:
la conversion de la cadena "SELECT count(*) FROM Usuarios WH" en el tipo 'Double' no es valida.
no entiendo a que se refiere...por favor me podrías ayudar con esto
Hola amigo bueno queria decir que ya arregle el problema ..use esta solucion
Código:
Dim aceptado As Boolean = False
        usuario = Me.TxtUsuario.Text.Trim()
        contraseña = Me.TxtContraseña.Text.Trim()
        empresa = Me.ddlEmpresa.Text.Trim()
        'Dim datasource = "Data Source=.\SQLExpress;Initial Catalog=BD;Integrated Security=True"
        Dim myConn As New SqlConnection(conexion)
        Dim consulta As New SqlCommand("select * from Usuarios WHERE userUsuario ='" & usuario & "' AND userContraseña ='" & contraseña & "' AND userEmpresa ='" & empresa & "'", myConn)
        myConn.Open()
        Dim leerbd As SqlDataReader = consulta.ExecuteReader()
        If leerbd.Read <> False Then
            aceptado = True
        Else
            aceptado = False
        End If
        If aceptado = True Then
            lblResult.Text = "Entra"
        Else
            lblResult.Text = "no entra"
        End If
        myConn.Close()
en todo caso muchas gracias
  #5 (permalink)  
Antiguo 28/09/2010, 07:08
Avatar de Malenko
Moderador
 
Fecha de Ingreso: enero-2008
Mensajes: 5.323
Antigüedad: 16 años, 4 meses
Puntos: 606
Respuesta: Login en ASP.Net

Cita:
Iniciado por pipeman2009 Ver Mensaje
en todo caso muchas gracias
En todo caso? Pero si te lo ha resuelto! Obviamente el código que te puso no compilaba porque puso el pseudocódigo, aunque te puso toda la sentencia en SQL. Vamos que solo tenias que poner las llamadas a las funciones de acceso a base de datos.
__________________
Aviso: No se resuelven dudas por MP!
  #6 (permalink)  
Antiguo 28/09/2010, 09:41
Avatar de triqui  
Fecha de Ingreso: diciembre-2008
Ubicación: Zaragoza(España)
Mensajes: 624
Antigüedad: 15 años, 5 meses
Puntos: 31
Respuesta: Login en ASP.Net

Cita:
Iniciado por Malenko Ver Mensaje
En todo caso? Pero si te lo ha resuelto! Obviamente el código que te puso no compilaba porque puso el pseudocódigo, aunque te puso toda la sentencia en SQL. Vamos que solo tenias que poner las llamadas a las funciones de acceso a base de datos.
Es tal como dice Malenko, no te puse el código

He mirado un poco tu código y te cuento un cambio que haría, aunque tu manera esta bien

Aqui estas recogiendo datos que no usas, todos los campos de la tabla Usuario.

Código ASP:
Ver original
  1. Dim consulta As New SqlCommand("select * from Usuarios WHERE userUsuario ='" & usuario & "' AND userContraseña ='" & contrase&#241;a & "' AND userEmpresa ='" & empresa & "'", myConn)

Y yo haría esto
Código ASP:
Ver original
  1. Dim consulta As New SqlCommand("IF((select count(*) from Usuarios WHERE userUsuario ='" & usuario & "' AND userContraseña ='" & contrase&#241;a & "' AND userEmpresa ='" & empresa & "'") >0) Select 'Correcto' Else Select 'Incorrecto', myConn)
(La select está sin probar)

Porque hago esto?
1.- No me traigo todos los datos (mejor para la bbdd):-p
2.- Si la consulta te arroja algún tipo de advertencia ó error, el objeto leerbd.Read (de esta realmente no estoy seguro, creeria que no.) por si las moscas.
3.- Y Valido a nivel de base de datos la condición.



Y cuando tu pones esto:

Código ASP:
Ver original
  1. Dim leerbd As SqlDataReader = consulta.ExecuteReader()
  2.         If leerbd.Read <> False Then
  3.             aceptado = True
  4.         Else
  5.             aceptado = False
  6.         End If
  7.         If aceptado = True Then
  8.             lblResult.Text = "Entra"
  9.         Else
  10.             lblResult.Text = "no entra"
  11.         End If


Recoges los datos así.

Código ASP:
Ver original
  1. Dim leerbd As SqlDataReader = consulta.ExecuteReader()
  2. Dim validacion As String
  3. while ( myReader.Read ( ) ) {
  4.    validacion = myReader.GetString(1)
  5. }
  6.  
  7. myReader.Close ( );
  8. myConn.Close ( );
  9.  
  10.         If validacion == "Correcto" Then
  11.              lblResult.Text = "Entra"
  12.              //Response.Redirect("~/PaginaUsuario.aspx?User=Usuario")
  13.         Else
  14.             lblResult.Text = "no entra"
  15.         End If

Tu manera está bien, aunque era otra forma.
__________________
La nueva red social de quinielas quiniela resultados
Cazaresultados Futbol base en directo
  #7 (permalink)  
Antiguo 28/09/2010, 15:10
 
Fecha de Ingreso: septiembre-2010
Mensajes: 27
Antigüedad: 13 años, 7 meses
Puntos: 0
Respuesta: Login en ASP.Net

Cita:
Iniciado por triqui Ver Mensaje
Es tal como dice Malenko, no te puse el código

He mirado un poco tu código y te cuento un cambio que haría, aunque tu manera esta bien

Aqui estas recogiendo datos que no usas, todos los campos de la tabla Usuario.

Código ASP:
Ver original
  1. Dim consulta As New SqlCommand("select * from Usuarios WHERE userUsuario ='" & usuario & "' AND userContraseña ='" & contraseña & "' AND userEmpresa ='" & empresa & "'", myConn)

Y yo haría esto
Código ASP:
Ver original
  1. Dim consulta As New SqlCommand("IF((select count(*) from Usuarios WHERE userUsuario ='" & usuario & "' AND userContraseña ='" & contraseña & "' AND userEmpresa ='" & empresa & "'") >0) Select 'Correcto' Else Select 'Incorrecto', myConn)
(La select está sin probar)

Porque hago esto?
1.- No me traigo todos los datos (mejor para la bbdd):-p
2.- Si la consulta te arroja algún tipo de advertencia ó error, el objeto leerbd.Read (de esta realmente no estoy seguro, creeria que no.) por si las moscas.
3.- Y Valido a nivel de base de datos la condición.



Y cuando tu pones esto:

Código ASP:
Ver original
  1. Dim leerbd As SqlDataReader = consulta.ExecuteReader()
  2.         If leerbd.Read <> False Then
  3.             aceptado = True
  4.         Else
  5.             aceptado = False
  6.         End If
  7.         If aceptado = True Then
  8.             lblResult.Text = "Entra"
  9.         Else
  10.             lblResult.Text = "no entra"
  11.         End If


Recoges los datos así.

Código ASP:
Ver original
  1. Dim leerbd As SqlDataReader = consulta.ExecuteReader()
  2. Dim validacion As String
  3. while ( myReader.Read ( ) ) {
  4.    validacion = myReader.GetString(1)
  5. }
  6.  
  7. myReader.Close ( );
  8. myConn.Close ( );
  9.  
  10.         If validacion == "Correcto" Then
  11.              lblResult.Text = "Entra"
  12.              //Response.Redirect("~/PaginaUsuario.aspx?User=Usuario")
  13.         Else
  14.             lblResult.Text = "no entra"
  15.         End If

Tu manera está bien, aunque era otra forma.

Muchas gracias
disculpen por ese "en todo caso" me di a entender mal
agradezco su ayuda y siempre estoy visitando este foro en busca de respuestas
y gracias por colaborar

Etiquetas: login, aspx
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 19:09.