Ir al contenido principal

ASP.NET Core - LOGIN en MVC con C# y ADO.Net

Hola nuevamente, hoy quiero compartirles los pasos para el desarrollo e implementación del ya muy conocido Inicio de Sesión (LOGIN) haciendo uso de ASP.NET Core con el patrón de MVC haciendo uso del lenguaje de programación C#.

Además, haremos uso de la base de datos de Microsoft SQL Server 2017 para la creación del procedimiento almacenado (implementación - Transact-SQL); mencionar que hará uso de la tabla Usuario creado en el proyecto ASP.NET Core - Implementando CRUD en MVC con C#.

Lo que veremos en este articulo:

Paso 1: Crear el procedimiento almacenado - Transact-SQL.
Paso 2: Implementar la cadena de conexión a la base de datos.
Paso 3: Agregar los paquetes de dependencia desde NuGet.
Paso 4: Crear la entidad usuario y agregar atributos.
Paso 5: Agregar el controlador e implementar los ActionResults.
Paso 6: Agregar la vista Login e implementar el cshtml.
Paso 7: Modificar la Configuración del Startup.

Requisitos:

Microsoft Visual Studio Community 2019
Microsoft .Net Framework
Microsoft SQL Server 2017 (RTM-GDR) - Express Edition (64-bit)
Framework Bootstrap (para mejorar el diseño de nuestra aplicación)
Framework jQuery Validation (para la validación de lado del cliente)

Ante de iniciar con el desarrollo del ya conocido Login (Inicio de Sesión), se debe crear el proyecto de nombre DEMO03_LOGIN, recomiendo revisar el articulo ASP.NET Core - CRUD en MVC con C# - Parte 1 donde se crear un proyecto desde cero de tipo ASP.Net Core, además detallamos la estructura del proyecto, configuración de la Aplicación y creación del Layout, ViewImports, ViewStart e importar la librería Bootstrap y sobre la edición de una página de Razor. Sin mayor detalles iniciemos con la implementación:

Paso 1: Crear el procedimiento almacenado - Transact-SQL.

Creamos el procedimiento almacenado GET_SEG_USUARIO haciendo referencia a la tabla Usuario de la base de datos BD_SEGURIDAD que se creo en el articulo ASP.NET Core - CRUD en MVC con C# - Parte 2; en primer instancias ingresamos a Microsoft SQL Server 2017 y clic en New Query o Nueva consulta para crear el procedimiento Almacenado:

CREATE PROCEDURE [dbo].[GET_SEG_USUARIO]

       @usuario VARCHAR    (50),

       @contrasena VARCHAR (250)

AS

BEGIN

    SELECT usuario, contrasena

    FROM   Usuario

       WHERE usuario = @usuario AND contrasena = @contrasena

END

El procedimiento almacenado cuenta con 2 parámetros (@usuario y @contrasena) de entrada con el fin de retornar el usuario y contraseña de acuerdo a los datos ingresado desde la aplicación que se restringe desde el Script de Transact-SQL con la sentencia básica del Where (WHERE usuario = @usuario AND contrasena = @contrasena).

Paso 2: Implementar cadena de conexión a la base de datos.

La cadena de conexión se encarga de almacenar los parámetros para acceder a la base de datos desde la aplicación. Clic derecho en el nombre del proyecto en el Explorador de soluciones y seleccione Agregar, Nuevo elemento. Cuando se abra la ventana Agregar nuevo elemento, seleccione Archivo appsettings.json que se usa para configurar aplicaciones web, finalmente haga clic en el botón Agregar.
Clic en Agregar
En el archivo appsettings.js creado agregar la siguiente cadena de conexión: 

{

  "ConnectionStrings": {

    "DefaultConnection": "Data Source=HPAREDES\\SQLEXPRESS;Database=BD_SEGURIDAD;UID=usuario_para_acceder_al_server;Password=contraseña_para_acceder_al_server"

  }

}

Estos parámetros son el nombre del servidor y el nombre de la base de datos. Asimismo, contiene la información de seguridad, como el nombre de usuario y la contraseña para la conexión al servidor de base de datos. La cadena de conexión se almacena dentro del archivo appsettings.json que se crea en la raíz de la aplicación.

Paso 3: Agregar los paquetes de dependencia desde NuGet.

Clic en Herramientas/Administrador de paquetes NuGet/Administrar paquetes NuGet para la solución, seguidamente buscar e instalar los siguientes paquetes Microsoft.AspNetCore.Session y Microsoft.Data.SqlClient. Además, la instalación se puede realizar desde la consola NuGet haciendo uso del comando Install-Package:

Microsoft.AspNetCore.Session: Encargado de conservar los datos de usuario entre las peticiones realizadas.
Microsoft.Data.SqlClient: Controlador de acceso a datos, compatible con .NET Core y .NET Framework. Es decir es la creación de un nuevo SqlClient en un nuevo espacio de nombres que permite la convivencia del antiguo System.Data.SqlClient y el nuevo Microsoft.Data.SqlClient.

Paso 4: Crear la entidad usuario y agregar atributos.
Paso 5: Agregar el controlador e implementar los ActionResults.
Paso 6: Agregar la vista Login e implementar el cshtml.
Paso 7: Modificar la Configuración del Startup.

Comentarios

Entradas más populares de este blog

Habilitar Usuario HR Oracle

Al realizar la primera instalación del Oracle, el usuario HR por defecto está bloqueado y por ende no podemos loguearnos como dicho usuario, lo que debe hacer son los siguiente pasos, aplicables para Linux o Windows. 1. Conectarse como usuario system o sysdba + contraseña haciendo uso del comando connect . Usuario : system Password : xxxx  2. Hacer uso  del comando alter user hr account unlock desbloqueamos la cuenta. alter user hr account unlock; 3. Escribimos el comando alter user HR identified by hr; con esto estamos diciendo que la contraseña será hr. alter user HR identified by hr; 4. Ahora testeamos la conexión con el comando - conn hr/hr@xe . Si deseas después de conectarnos se puede realizar un select a la tabla employees del hr . Resultado del select realizado 5. Con todos estos pasos realizados ya podemos logearnos desde cualquier IDE como el usuario hr  y la contraseña hr que definimos en el paso 3.  Para finalizar nos logue

Usuario SYS y SYSTEM - ORACLE

Usuario SYS y SYSTEM Ambos usuario son creados de forma automática al crear la base de datos ORACLE y se  otorga el rol de DBA. SYS (password por defecto: CHANGE_ON_INSTALL). SYSTEM (password por defecto: MANAGER). Lo que se recomienda es cambiar el password de ambos usuarios por el tema de seguridad. SYS: Todas las tablas y vistas para el diccionario de datos de la base de datos están almacenados en el esquema SYS. Estas tablas y vistas son críticas para el funcionamiento de la base de datos ORACLE. Para mantener la integridad del diccionario de datos, las tablas del esquema SYS son manipulados solo por la base de datos. Nunca se debería modificar algo o crear tablas en el esquema del usuario SYS. SYSTEM: El usuario SYSTEM se utiliza para crear tablas y vistas adicionales que muestran información administrativa, tablas internas y vistas utilizado por varias opciones y herramientas de la base de datos ORACLE . No se recomienda  utilizar el esquema SYSTEM para almacenar t

Parámetro de entrada y salida – PL/SQL

Parámetro de entrada y salida – PL/SQL: Los parámetros de entrada y salida no son los parámetros de inicialización de la base de datos ORACLE. Los parámetros de entra y salida son utilizados mayormente en implementaciones de funciones, procedimientos almacenados o bloques de código bajo el lenguaje del PL/SQL, se considera que ambos parámetros (entra y salida) puedan realizar operaciones en el mismo bloque PL/SQL, es decir, si enviamos un parámetro de entrada hará que cumpla cierta operación y retornara los valores de salida de dicha operación procesada de acuerdo al parámetro de ingresado. Es de acuerdo al caso que nos presenta en la implementación. Algo importante al definir los parámetros, es saber y considerar cuántos tipos de parámetro existe si solo hablamos de entrada y salida, en realidad mi determinación seria 3 tipos: Parámetros: IN – entrada OUT – salida IN OUT – entrada salida Parámetro IN – entrada: El comportamiento común de estés tipos de parámetros es estar s