Descarga el proyecto
https://github.com/resback/KlutUsuariosService
Dependencias
el proyecto ya tiene las dependencias, se puede probar compilando y validar, si no las instalamos:
dotnet add package Microsoft.EntityFrameworkCore --version 8.0.8
dotnet add package Microsoft.EntityFrameworkCore.SqlServer --version 8.0.8
dotnet add package Microsoft.EntityFrameworkCore.Tools --version 8.0.8
dotnet add package Microsoft.AspNetCore.Authentication.JwtBearer --version 8.0.8
dotnet add package Swashbuckle.AspNetCore --version 6.6.2
Cadena de conexión en appsettings.json
Validamos la cadena de conexión, el proyecto tiene Win Auth (Integrated Security) por defecto para no especificar usuarios
Ejemplo:
"ConnectionStrings": {
"SqlServer": "Server=.\\SQLEXPRESS;Database=KlutUsuariosService;Integrated Security=True;Trust Server Certificate=true"
},
Migraciones y DB
La migración inicial ya esta en el proyecto, por cualquier cosa:
Add-Migration Inicial
Actualización de la BD, ejecutamos:
Update-Database
Compilamos y Ejecutamos
Y navegamos la url:
https://localhost:7175/swagger/index.html
Creación de usuario
Creamos un usuario con datos demo

Probando login erróneo
Ingresamos datos que no existen

Login éxitoso
Ingresamos datos correctos

Bloqueo de inicio de sesión
Se validan los intentos de inicio de sesión y se realizan 3 intentos erróneos
Respuesta después de 3 intentos con password erróneo:

Se valida los inicios de sesión y se confirman los 3 intentos erróneos:

/ Script for SelectTopNRows command from SSMS /
SELECT TOP (1000) [Id]
,[UsuarioId]
,[Fecha]
,[Exitoso]
,[Ip]
,[UserAgent]
FROM [KlutUsuariosService].[dbo].[IniciosSesion]
Aún ingresando el password correcto, sigue mostrando el mismo mensaje de bloqueo

Validar sesión y endpoints seguros
https://localhost:7175/api/usuarios/v1
Se trata de obtener los usuarios en postman sin enviar authorization (sin token) y la respuesta es 401

Se añade autorización y el token previamente obtenido en el login y ahora devuelve un 200 OK con respuesta estandarizada.

