Maison >développement back-end >C++ >Comment implémenter le partage de ressources cross-origine (CORS) dans l'API Web ASP.NET Core ?
Activation de CORS dans l'API Web ASP.NET Core : guide complet
Le partage de ressources d'origine croisée (CORS) est un mécanisme qui permet aux navigateurs Web d'effectuer des requêtes HTTP d'origine croisée, généralement vers un domaine différent de celui d'origine actuelle du navigateur. L'activation de CORS est essentielle pour garantir une communication transparente entre les applications frontales et les API Web back-end hébergées sur différents domaines ou ports.
Activer CORS dans Startup.cs
La méthode préférée pour activer CORS dans ASP.NET Core consiste à utiliser le fichier Startup.cs. Dans la méthode ConfigureServices, ajoutez les lignes suivantes pour installer le package CORS et configurer le service CORS :
<code class="language-csharp">services.AddCors(); services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1);</code>
Ensuite, dans la méthode Configure, configurez le middleware CORS avant d'appeler app.UseMvc() :
<code class="language-csharp">app.UseCors(options => options.WithOrigins("http://example.com").AllowAnyMethod());</code>
Cela autorisera les méthodes HTTP à partir de la source spécifiée (dans ce cas "https://www.php.cn/link/63e6bc520edcbaa95446b5690d989f30
Configuration globale CORS
Si vous souhaitez activer CORS globalement pour tous les contrôleurs et actions, vous pouvez ajouter l'attribut [EnableCors] au fichier Startup.cs :
<code class="language-csharp">[assembly: EnableCors(typeof(MyPolicy))]</code>MyPolicy peut être défini dans ConfigureServices :
<code class="language-csharp">services.AddCors(options => { options.AddPolicy("MyPolicy", policy => policy.AllowAnyOrigin().AllowAnyMethod().AllowAnyHeader()); });</code>Cela activera CORS pour tous les contrôleurs et actions, aucune configuration distincte de contrôleur ou de niveau d'action n'est requise.
Ajouter un en-tête personnalisé
Si vous devez spécifier d'autres en-têtes personnalisés dans la configuration CORS, vous pouvez modifier l'objet options dans l'instruction app.UseCors :
<code class="language-csharp">app.UseCors(options => options.AllowAnyOrigin().AllowAnyMethod().AllowAnyHeader() .WithExposedHeaders("X-My-Custom-Header"));</code>Cela ajoutera X-My-Custom-Header à la liste des en-têtes pouvant être rendus publics.
Méthode de force utilisant l'ajout manuel d'en-tête
Au lieu d'utiliser le middleware CORS intégré, vous pouvez utiliser le middleware pour ajouter manuellement les en-têtes requis à chaque réponse. Cette méthode est moins recommandée, mais peut être utile dans certaines situations, notamment lors de l'utilisation d'en-têtes d'autorisation.
<code class="language-csharp">app.Use(async (context, next) => { context.Response.Headers.Add("Access-Control-Allow-Origin", "*"); 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(); });</code>Ce middleware ajoutera les en-têtes spécifiés à toutes les réponses, permettant ainsi CORS pour toutes les demandes.
Conclusion
Il existe plusieurs façons d'activer CORS dans ASP.NET Core, en fonction de vos besoins spécifiques. En suivant les étapes décrites dans ce guide, vous pouvez garantir une communication transparente entre les applications frontales et les API Web back-end, permettant ainsi le partage des données et des fonctionnalités entre les domaines.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!