Entradas

Mostrando las entradas con la etiqueta ASP.NET MVC

Adviento C# 2020: Diario de ASP.NET

Este año volví tiempo completo al desarrollo Web, primero con .NET Core y ahora con .NET 5. Quiero compartir 3 cosas que aprendí y me parecen relevantes. Si logro mostrarte al menos una que no conocías, habré cumplido con el propósito de este post. 1. Inyectar el usuario Seguramente tienes varios servicios que agregas a tus controladores usando inyección de dependencias y es probable que en ellos tengas métodos como: IEnumerable<Product> GetProducts(string userId); En donde userId lo pasas desde el controlador usando algo como: var userId = User.Claims.FirstOrDefault(c => c.Type == ClaimTypes.NameIdentifier).Value; var products = _service.GetProducts(userId); Yo creé una extensión para usar: User.GetId(); Eso me funcionó en muchos proyectos, hasta que me topé con la implementación de un IEditableDashboardStorage para un control de DevExpress. En resumen, esa interfaz la implementas para almacenar la configuración de un dashboard que es editable por el usuario… Pero no tie...

Xamarin - Lecciones aprendidas 3

Imagen
Esta es la tercera parte de las lecciones aprendidas con Xamarin. Aquí están la primera y la segunda . Quiero insistir, especialmente en este post, que no quiero hablar de "buenas prácticas" sino de cosas que me han ayudado a solucionar situaciones específicas. Esta vez son los códigos QR como opción para "iniciar sesión" en las apps. Autorización usando QR. Algunas apps tienen un portal para mostrar reportes, modificar parámetros, registrar usuarios, etc. que ya está protegido por contraseña. Ese portal se puede aprovechar para mostrar un código QR que contiene el token de autorización para consumir servicios web. Es como "implementar la segunda parte de OAuth2" ( aquí está bien explicado todo el protocolo OAuth2 ). Esto fue lo que hice: Genero el código siguiendo la documentación de asp.net core sobre Hash Codes y me aseguro que sólo el usuario autorizado pueda verlo, usando Authorization Handlers . Tiene nombre de la app, el id del recurs...

El nuevo sistema de autenticación de ASP.NET

Microsoft es sin duda la empresa que mejor documentación tiene sobre sus tecnologías de desarrollo, y cuenta con la mejor herramienta: Visual Studio. Sin embargo hay un tema con el que nunca me había sentido satisfecho hasta hoy: la autenticación de ASP.NET y su integración con el modelo de negocio. ASP.NET (MVC 4) ofrece un sistema de autenticación 'out of the box' muy útil, pero que en mi opinión carece de documentación que explique la mejor forma de integrarlo con otras entidades, entendiendo integración como la creación de relaciones uno a muchos. Estas son algunas propuestas que hay en internet y la razones por las que no me gustan: 1. Crear un proveedor personalizado que incluya las relaciones. Además de ser tedioso y susceptible a errores, implica desaprovechar lo que otros desarrolladores de mucha experiencia han hecho por nosotros. 2. Crear dos bases de datos, una para los usuarios y otra para el negocio (en esa parte estoy de acuerdo), y duplicar la información de l...