Maison >développement back-end >C++ >Comment activer CORS dans l'API Web ASP.NET Core ?

Comment activer CORS dans l'API Web ASP.NET Core ?

Patricia Arquette
Patricia Arquetteoriginal
2025-01-24 18:21:14344parcourir

How to Enable CORS in ASP.NET Core Web API?

Configuration du partage de ressources cross-origine (CORS) dans l'API Web ASP.NET Core

Ce guide présente deux approches pour activer CORS dans votre API Web ASP.NET Core : en utilisant un middleware et une méthode d'injection manuelle d'en-tête.

Méthode 1 : configuration CORS basée sur un middleware

L'approche la plus simple et recommandée consiste à exploiter le Microsoft.AspNetCore.Cors package NuGet.

  1. Installer le package :

    <code>Install-Package Microsoft.AspNetCore.Cors</code>
  2. Configurer les services CORS :

    Dans votre fichier Startup.cs, enregistrez le service CORS :

    <code class="language-csharp">public void ConfigureServices(IServiceCollection services)
    {
        services.AddCors();
        // ... other service configurations
    }</code>
  3. Utiliser le middleware CORS :

    Dans la méthode Configure, utilisez le middleware app.UseCors pour définir les origines autorisées et les méthodes HTTP. Remplacez "http://example.com" par votre ou vos origines réellement autorisées.

    <code class="language-csharp">public void Configure(IApplicationBuilder app, IWebHostEnvironment env, ... )
    {
        app.UseCors(options => options.WithOrigins("http://example.com").AllowAnyMethod());
        // ... other middleware configurations
    }</code>

Méthode 2 : Injection manuelle d'en-tête (méthode de repli)

Si l'approche middleware s'avère inefficace, vous pouvez directement ajouter des en-têtes CORS à vos réponses HTTP. Ceci est généralement moins préféré en raison d’une maintenabilité réduite.

<code class="language-csharp">app.Use(async (context, next) =>
{
    context.Response.Headers.Add("Access-Control-Allow-Origin", "http://example.com");
    context.Response.Headers.Add("Access-Control-Allow-Methods", "GET, POST, PUT, PATCH, DELETE");
    context.Response.Headers.Add("Access-Control-Allow-Headers", "X-PINGOTHER, Content-Type, Authorization");

    await next.Invoke();
});</code>

Pensez à positionner ce middleware avant app.UseRouting() ou un middleware équivalent gérant le routage.

Considérations importantes :

  • *Wildcard Origins (`):** Avoid using the wildcard"*"forWithOrigins` dans les environnements de production. Cela ouvre votre API aux requêtes de n'importe quelle origine, ce qui pose un risque de sécurité important.
  • En-têtes spécifiques : Définissez soigneusement les en-têtes autorisés à l'aide de AddCustomHeader ou l'équivalent dans la méthode choisie. Incluez toujours "Content-Type".
  • Configurations avancées : Pour un contrôle plus granulaire, explorez le modèle de politique CORS proposé par le package Microsoft.AspNetCore.Cors. Cela permet des politiques nommées et des scénarios plus complexes.

Ce guide amélioré fournit une explication plus claire et une structure améliorée pour la mise en œuvre de CORS dans l'API Web ASP.NET Core. Choisissez la méthode qui correspond le mieux à vos besoins et priorisez les bonnes pratiques de sécurité.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn