Como hacer un login desde Visual C# con conexión a Base de Datos SQL Server

Como hacer un login desde Visual C# con conexión a Base de Datos SQL Server a través de un Procedimiento almacenado que valida que el usuario y la contraseña existan.

Conocimientos previos:



Secciones importantes de código

Login.aspx

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Login.aspx.cs" Inherits="CRUDTEST.Login" %
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
        <div>
            <div>
                <div><asp:Label ID="lblUsuario" runat="server" Text="Usuario" /></div>
            </div>       
                <div>
                    <asp:TextBox ID="txtUsuario" runat="server" />
                </div>
             <div>
                 <asp:Label ID="lblContrasena" runat="server" Text="Constraseña" />
             </div>
            <div>
                <asp:TextBox ID="txtContrasena" runat="server" TextMode="Password" />
            </div>
            <div>
                <asp:Button id="btnLogin" runat="server" Text="Login" OnClick="btnLogin_Click" />
            </div>
            <div>
                <asp:Label ID="lblMensaje" runat="server" ForeColor="Red"/>
            </div>
        </div>
    </form>
</body>
</html>

Login.cs



Librerias importantes:

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


Métodos importantes:

protected void btnLogin_Click(object sender, EventArgs e)
        {
            validaUsuario();

        }

 public void validaUsuario()
        {
            using (SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["connDB"].ConnectionString))
            {
                SqlCommand cmd = new SqlCommand();
                cmd.CommandType = CommandType.StoredProcedure;
                cmd.CommandText = "spValidaUsuario";
                cmd.Parameters.Add("@usuario", SqlDbType.VarChar).Value = txtUsuario.Text;
                cmd.Parameters.Add("@contrasena", SqlDbType.VarChar).Value = txtContrasena.Text;
                cmd.Connection = conn;
                conn.Open();
                SqlDataReader dr = cmd.ExecuteReader();
                if (dr.Read())
                {
                    Response.Redirect(@"~\Default.aspx");
                    lblMensaje.Text = "";
                }
                else
                {
                    lblMensaje.Text = "Usuario y/o contraseña incorrectos";
                }
            }

        }

Objetos de Base de Datos

Tabla

USE [TEST]
GO

CREATE TABLE [dbo].[Usuarios](
[idUsuario] [bigint] PRIMARY KEY IDENTITY(1,1) NOT NULL,
[usuario] [varchar](20) NULL,
[contrasena] [varchar](20) NULL,
[email] [varchar](100) NULL,
[telefono] [bigint] NULL)

Procedimiento Almacenado


USE [TEST]
GO
CREATE PROCEDURE [dbo].[spValidaUsuario]
@usuario VARCHAR(20),
@contrasena VARCHAR(20)
AS BEGIN
SELECT usuario,contrasena
  FROM Usuarios
 WHERE usuario=@usuario AND contrasena=@contrasena
 END


1 comentario:

ASP.NET Web API

Es un entorno que nos permite desarrollar servicios HTTP para múltiples clientes tales como exploradores y dispositivos móviles,  las operac...