1 messaggio dal 29 agosto 2019
Ciao ;) esiste un modo per far si che nel caso in cui fallisca l'autorizzazione per ruolo, al posto di ottenere un redirect ad una pagina si possa ritornare un errore custom come ad esempio un errore 500? Oppure bisogna passare tramite una CustomPolicy?
11.886 messaggi dal 09 febbraio 2002
Contributi
Heilàà Davide! :)
Scusa il ritardo della risposta, dovevo verificare una cosetta.


si possa ritornare un errore custom come ad esempio un errore 500?

Sì, lo puoi fare con questo codice da mettere nel metodo Configure della classe Startup.
Mettilo dopo la chiamata ad AddDefaultIdentity.
services.ConfigureApplicationCookie(options => 
{
  options.Events.OnRedirectToAccessDenied = opt => {
    opt.HttpContext.Response.StatusCode = 403;
    return Task.CompletedTask;
  };
});

In pratica, in questo modo ridefinisci il comportamento di default che è quello di reindirizzare alla pagina "Accesso negato". In questo esempio sto impostando lo status code 403 (Forbidden);

ad esempio un errore 500

500 è meglio di no perché gli errori 5xx sono imputabili al server mentre in questo caso, invece, la colpa è dell'utente che ha provato ad accedere a una pagina per la quale non aveva privilegi. Quindi un errore 4xx è più indicato. Il 403, in particolare, è perfetto perché è proprio lo status code che indica che il server si è rifiutato di fornire una risposta (per mancanza di privilegi in questo caso).

Ciao ciao,
Moreno

Enjoy learning and just keep making

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.