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
Libérer: 2025-01-24 18:21:14
original
381 Les gens l'ont consulté

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>
    Copier après la connexion
  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>
    Copier après la connexion
  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>
    Copier après la connexion

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>
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal