Recherche…


Rediriger vers une page d'erreur personnalisée

ASP.NET Core fournit le middleware de pages de codes d'état , qui prend en charge plusieurs méthodes d'extension différentes, mais nous sommes intéressants dans UseStatusCodePages et UseStatusCodePagesWithRedirects :

  • UseStatusCodePages ajoute un middleware StatusCodePages avec les options données qui vérifient les réponses avec des codes de statut compris entre 400 et 599 sans corps. Exemple d'utilisation pour redirection:

    app.UseStatusCodePages(async context => {
      //context.HttpContext.Response.StatusCode contains the status code
    
      // your redirect logic
    
    });
    
  • UseStatusCodePagesWithRedirects ajoute un middleware StatusCodePages au pipeline. Spécifie que les réponses doivent être gérées en redirigeant avec le modèle d'URL d'emplacement donné. Cela peut inclure un espace réservé '{0}' pour le code d'état. PathBase sera ajouté aux URL commençant par '~', où toute autre URL sera utilisée telle quelle. Par exemple, les éléments suivants seront redirigés vers ~ / errors / <code_erreur> (par exemple ~ / errors / 403 pour erreur 403):

    app.UseStatusCodePagesWithRedirects("~/errors/{0}");
    

Gestion des exceptions globales dans ASP.NET Core

UseExceptionHandler peut être utilisé pour gérer les exceptions globalement. Vous pouvez obtenir tous les détails de l'objet d'exception, comme Stack Trace, Inner exception et autres. Et puis vous pouvez les montrer à l'écran. Vous pouvez facilement mettre en œuvre comme ça.

app.UseExceptionHandler(
 options => {
    options.Run(
    async context =>
    {
      context.Response.StatusCode = (int)HttpStatusCode.InternalServerError;
      context.Response.ContentType = "text/html";
      var ex = context.Features.Get<IExceptionHandlerFeature>();
      if (ex != null)
      {
        var err = $"<h1>Error: {ex.Error.Message}</h1>{ex.Error.StackTrace }";
        await context.Response.WriteAsync(err).ConfigureAwait(false);
      }
    });
 }
);

Vous devez mettre cela dans configure () du fichier startup.cs.



Modified text is an extract of the original Stack Overflow Documentation
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow