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.