Olá, Guilherme!
Entendo sua preocupação em fornecer uma experiência de usuário mais amigável. No ASP.NET Core, você pode personalizar a resposta para usuários não autenticados usando o middleware de manipulação de erros.
Você pode configurar isso no método Configure
do arquivo Startup.cs. Aqui está um exemplo de como você pode fazer isso:
app.UseStatusCodePages(async context =>
{
context.HttpContext.Response.ContentType = "text/plain";
if (context.HttpContext.Response.StatusCode == 401) // Não autorizado
{
await context.HttpContext.Response.WriteAsync("Você não está autorizado para acessar este recurso. Por favor, faça login.");
}
else if (context.HttpContext.Response.StatusCode == 404) // Não encontrado
{
await context.HttpContext.Response.WriteAsync("Recurso não encontrado.");
}
// Você pode adicionar mais condições para outros códigos de status aqui
});
Nesse exemplo, se o usuário tentar acessar um recurso para o qual não está autorizado, o servidor responderá com uma mensagem personalizada em vez do erro 404 genérico.
Porém, é importante lembrar que essa é apenas uma das várias maneiras de lidar com isso. Dependendo da complexidade da sua aplicação, você pode querer implementar uma lógica de manipulação de erros mais sofisticada.
Espero ter entendido e conseguido ajudar. Bons estudos!