Saltar al contenido

Autorización en ASP.NET Core. Siempre 401 No autorizado para [Authorize] attribute

Queremos compartirte la mejor respuesta que descubrimos por todo internet. Queremos que te sea de utilidad y si deseas comentarnos algo que nos pueda ayudar a mejorar hazlo con libertad.

Solución:

A petición de otros, aquí está la respuesta:

El problema estaba en el orden del middleware en Startup.cs

public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)

    ConfigureAuth(app); // your authorisation configuration

    app.UseMvc();

¿Por qué es importante el orden del middleware? si ponemos app.UseMvc() primero, luego las acciones de MVC entrarían en el enrutamiento y si ven el Autorizar attribute ellos tomarán el control de su manejo y es por eso que recibimos 401 Error no autorizado.

Espero que esto ayude a alguien 😉

en ASP.NET Core 3.0, tuve el mismo problema, lo que funcionó para mí fue:

app.UseRouting();
app.UseAuthentication();
app.UseAuthorization();

en el método StartUp.Configure.

Este documento muestra el orden típico de los componentes de middleware: https://docs.microsoft.com/en-us/aspnet/core/fundamentals/middleware/?view=aspnetcore-3.0

Si está utilizando ASP.NET Core 3.0

Revisa este pedido

app.UseAuthentication();

app.UseRouting(); //debe estar debajo app.UseAuthentication();

Si está utilizando ASP.NET Core < 3.0

Solo reemplaza el app.UseRouting(); por app.UseMvc();

es decir:

app.UseAuthentication();

app.UseMvc(); //debe estar debajo app.UseAuthentication();

Aquí tienes las reseñas y puntuaciones

Si estás de acuerdo, eres capaz de dejar una crónica acerca de qué le añadirías a este artículo.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *