martes, 4 de junio de 2013

Hacer Login en .Net



By Diógenes Amaury MS

Hoy explicaremos la forma de hacer login en .Net, es importante destacar que este código puede ser utilizado tanto en aplicaciones de escritorios (windowsForm) como en aplicaciones web(webForm) con prácticamente el mismo código.
En el día de hoy realizaremos un login en asp.net, de manera que cuando el usuario escriba su usuario y contraseña tenga acceso a al sistema.
Código en vb.net
Importamos la clase  Data para poder conectarnos a un base de datos

Imports System.Data
Imports System.Data.SqlClient

Rem Declaramos una variable que almacenara la conexion a la base de datos.

Dim conexion As New SqlConnection("Data Source=SERVER\SQLEXPRESS;Initial Catalog=Datos;Integrated Security=True")

Rem Realizamos el código  en el botón entrar.

Protected Sub btnentrar_Click(ByVal sender As Object, ByVal e As EventArgs) Handles btnentrar.Click
  Dim dt As New DataTable
  Dim csql As String
  csql = " Select * from USUARIO_M where NOMUSU ='" & TXTUSUARIO.Text & "' AND CLAUSU ='" & _ 
     TXTCLAVE.Text & "'"        
       
  Dim da As New SqlDataAdapter(csql, conexion.ConnectionString)
  conexion.Open()
  da.Fill(dt)
   If dt.Rows.Count > 0 Then
      Session("auntentico") = "si"
      Session("USUARIO") = dt.Rows.Item(0)("NOMBRE").ToString
      Response.Redirect("menu.aspx")

    Else
     lblerror.Text = "Usuario no autorizado Incorrecta"
     Session("auntentico") = "no"
   End If
   conexion.Close()     
End Sub



Código para c#
En este ejemplo utilizaremos los parámetros para conectarnos, esta misma forma la podemos utilizar en vb.net por seguridad cuando trabajamos con base de datos en la web para evitar las inyecciones sql de usuarios no autorizados.

using System.Data;
using System.Data.SqlClient;

string cadena = @"Data Source=SERVERMIT2\SQLEXPRESS;Initial Catalog=Carros;Integrated Security=True";
SqlConnection conexion = new SqlConnection(cadena);
string strsql = " Select *  from USUARIO_M where NOMUSU =@usuario AND CLAUSU =@clave";
SqlCommand cmd = new SqlCommand(strsql, conexion);
cmd.Parameters.AddWithValue("@usuario", TXTUSUARIO.Text );
cmd.Parameters.AddWithValue("@clave", TXTCLAVE.Text);
conexion.Open();
SqlDataReader rdr = cmd.ExecuteReader();
if (rdr.HasRows)
   while (rdr.Read())
    {
     // Obteniendo el resultado de la variable que contiene el nombre de usuario
     Session["usuario"] = rdr["USUASI"];
     Response.Redirect("menu.aspx");
          
    }
else
   {
                       
    lblmensaje.Text = "Error de clave o Usuario";
  }
  conexion.Close();
           

2 comentarios: