• Domingo 22 de Diciembre de 2024, 21:53

Autor Tema:  Login Con Base De Datos "sql Server 2005"  (Leído 2150 veces)

robbie110487

  • Miembro activo
  • **
  • Mensajes: 66
    • Ver Perfil
Login Con Base De Datos "sql Server 2005"
« en: Sábado 5 de Mayo de 2007, 08:07 »
0
Hola, estoy realizando una aplicacion de practica para la empresa donde estoy actualmente, tecnicamente ya la he terminado, solo quisiera que me ayudaran con el sistema de logueo, cual es la mejor forma de hacerlo? con el control login? o con textbox y botones aparte??.
ya puse el control login y lo he personalizado y tmb hice la coneccion mediante un data source, ahra quisiera saber que comando utilizar para comparar usuario y password en una tabla de una base de datos que tengo en SQL SERVER 2005, cualquier ayuda es bien recibida.

Por cierto utilizo Microsoft Visual Studio 2005 Proffessional y como lenguaje Visual Basic

SAludos

lencho

  • Miembro de PLATA
  • *****
  • Mensajes: 1076
    • Ver Perfil
Re: Login Con Base De Datos "sql Server 2005"
« Respuesta #1 en: Sábado 5 de Mayo de 2007, 16:07 »
0
Código: Text
  1. Select id from Usuario where login = txtLogin.text and password = txtpassword.text
  2.  
______________________________________________________________________________________
"No estoy de acuerdo con lo que dices, pero defenderé con mi vida tu derecho a expresarlo"

sergiotarrillo

  • Moderador
  • ******
  • Mensajes: 1059
    • Ver Perfil
    • http://sergiot2.com/blog
Re: Login Con Base De Datos "sql Server 2005"
« Respuesta #2 en: Sábado 5 de Mayo de 2007, 18:23 »
0
Hola robbie110487!

Si quieres usar los controles Login (que sólo debe funcionar con arrastrar y usar, tienes que crear la base de datos para eso).

Tienes que correr la herramienta aspnet_regsql, para crear la base datos, y puedes escoger en crear un base de datos sólo para esas tablas o mantarlas en tu propia base de datos.

Una vez creado eso, tienes que remover, o cambiar el provider de seguridad en tu archivo web.config. Dos post que te servirán mucho:

Preparando la PC para usar Web Parts en ASP.NET 2.0. Esto también se aplica para la seguridad y el uso profiles.

usando las nuevas APIS de ASP.NET 2.0 con SQL Server 2000.

Saludos,


Sergio Tarrillo
Blog]miBlog[/url]

No me visiten!

robbie110487

  • Miembro activo
  • **
  • Mensajes: 66
    • Ver Perfil
Re: Login Con Base De Datos "sql Server 2005"
« Respuesta #3 en: Lunes 7 de Mayo de 2007, 22:28 »
0
Gracias por la info me sirvio de mucho, pero al final use esto:
Código: Text
  1. ' Función para comprobar si el acceso es correcto
  2.     Private Function ComprobarUsuario(ByVal usuario As String, ByVal contrasena As String) As Boolean
  3.  
  4.         ' Conectar a la base de datos
  5.         Dim cnn As SqlConnection = Nothing
  6.         Try
  7.             cnn = New SqlConnection(Me.SqlDataSource1.ConnectionString)
  8.             cnn.Open()
  9.  
  10.             ' Definir la cadena que vamos a usar para comprobar
  11.             ' si el usuario y el password son correctos.
  12.             ' Utilizo parámetros para evitar inyección de código.
  13.             Dim sel As New System.Text.StringBuilder
  14.  
  15.             ' Usando COUNT(*) nos devuelve el total que coincide
  16.             ' con lo indicado en el WHERE,
  17.             ' por tanto, si la clave y el usuario son correctos,
  18.             ' devolverá 1, sino, devolverá 0
  19.             sel.Append("SELECT COUNT(*) FROM Empleados ")
  20.             sel.Append("WHERE usuario = @usuario AND contrasena = @contrasena")
  21.  
  22.             ' Definir el comando que vamos a ejecutar
  23.             Dim cmd As New SqlCommand(sel.ToString, cnn)
  24.  
  25.             ' Creamos los parámetros
  26.             cmd.Parameters.Add("@usuario", SqlDbType.NVarChar, 16)
  27.             cmd.Parameters.Add("@contrasena", SqlDbType.NVarChar, 16)
  28.  
  29.             ' Asignamos los valores recibidos como parámetro
  30.             cmd.Parameters("@usuario").Value = usuario
  31.             cmd.Parameters("@contrasena").Value = contrasena
  32.  
  33.             ' Ejecutamos la consulta
  34.             ' ExecuteScalar devuelve la primera columna de la primera fila
  35.             ' por tanto, devolverá el número de coincidencias halladas,
  36.             ' que si es 1, quiere decir que el usuario y el password son correctos.
  37.             Dim t As Integer = CInt(cmd.ExecuteScalar)
  38.  
  39.             ' Cerramos la conexión
  40.             cnn.Close()
  41.  
  42.             ' Si el valor devuelto es cero
  43.             ' es que no es correcto.
  44.             If t = 0 Then
  45.                 Return False
  46.             End If
  47.  
  48.             'Capturamos una excepcion por si hay error en la conexion
  49.         Catch ex As Exception
  50.             lblError.Text = "Error " & ex.Message
  51.             Return False
  52.         Finally
  53.             'Si la conexion esta cerrada, la destruimos
  54.             If Not cnn Is Nothing Then
  55.                 cnn.Dispose()
  56.             End If
  57.         End Try
  58.  
  59.         ' Si llega aquí es que todo ha ido bien
  60.         Return True
  61.     End Function
  62.  

Y luego mando llamar a la funcion asi:
Código: Text
  1. Protected Sub Login1_Authenticate(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.AuthenticateEventArgs) Handles Login1.Authenticate
  2.         If ComprobarUsuario(Login1.UserName, Login1.Password) = True Then
  3.             e.Authenticated = True
  4.         Else
  5.             e.Authenticated = False
  6.         End If
  7.     End Sub
  8.  

Me va de maravilla, saludos y gracias a los 2  :comp:

sergiotarrillo

  • Moderador
  • ******
  • Mensajes: 1059
    • Ver Perfil
    • http://sergiot2.com/blog
Re: Login Con Base De Datos "sql Server 2005"
« Respuesta #4 en: Martes 8 de Mayo de 2007, 05:41 »
0
si es válido, asi es como se hacía antes, te recomiendo usar procedimientos almacenados, y leer sobre membership personaliza... ya que te estas perdiendo de mucho los controles Login...


Sergio Tarrillo
Blog]miBlog[/url]

No me visiten!