"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Comment implémenter le partage de ressources inter-domaines (CORS) dans l'API Web ASP.NET Core?

Comment implémenter le partage de ressources inter-domaines (CORS) dans l'API Web ASP.NET Core?

Publié le 2025-04-30
Parcourir:344

How to Implement Cross-Origin Resource Sharing (CORS) in ASP.NET Core Web API?

Activer les COR dans l'ASP.net Core Web API: Guide complet

Le partage des ressources d'origine croisée (CORS) est un mécanisme qui permet aux navigateurs Web de faire des demandes HTTP d'origine transversale, généralement pour des domaines différents de la source actuelle du navigateur. L'activation des COR 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 les cors

dans startup.cs

La méthode préférée pour activer CORS dans ASP.NET Core est via le fichier startup.cs. Dans la méthode ConfigureServices, ajoutez les lignes suivantes pour installer le package CORS et configurez le service CORS:

services.AddCors();
services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1);

Suivant, dans la méthode de configuration, configurez le middleware COR avant d'appeler app.usemvc ():

app.UseCors(options => options.WithOrigins("http://example.com").AllowAnyMethod());

Cela permettra toute demande de la source spécifiée (dans ce cas " http://example.com") pour utiliser toute méthode http.

Cors de configuration globale

]

Si vous souhaitez activer CORS globalement pour tous les contrôleurs et opérations, vous pouvez ajouter la propriété [activécors] au fichier startup.cs:

[assembly: EnableCors(typeof(MyPolicy))]

vous pouvez définir MyPolicy dans configureServices:

services.AddCors(options =>
{
    options.AddPolicy("MyPolicy",
        policy => policy.AllowAnyOrigin().AllowAnyMethod().AllowAnyHeader());
});

Cela permettra à CORS pour tous les contrôleurs et opérations sans avoir besoin d'un contrôleur ou d'une configuration de niveau d'opération distincte.

Ajouter un en-tête personnalisé

Si vous avez besoin de spécifier d'autres en-têtes personnalisés dans la configuration CORS, vous pouvez modifier l'objet Options dans l'instruction App.Usecors:

app.UseCors(options => options.AllowAnyOrigin().AllowAnyMethod().AllowAnyHeader()
    .WithExposedHeaders("X-My-Custom-Header"));

Méthode forcée ajoutée à l'aide de l'en-tête manuel

Comme alternative à l'utilisation du middleware COR intégré, vous pouvez ajouter manuellement les en-têtes requis à chaque réponse à l'aide du middleware. Cette méthode n'est pas très recommandée, mais peut être utile dans certains cas, en particulier lors de l'utilisation d'en-têtes d'autorisation.

app.use (async (contexte, suivant) => { context.Response.heders.add ("Access-Control-Allow-Origin", "*"); context.Response.heders.add ("Access-Control-Allow-Methods", "Get, Post, Put, Patch, Delete"); context.Response.heders.add ("Access-Control-Allow-Headers", "X-Pingother, Content-Type, Authorization"); attendre suivant (); });
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();
});

en conclusion

Selon vos exigences spécifiques, il existe plusieurs façons d'activer les COR dans ASP.NET Core. Suivant les étapes décrites dans ce guide, vous pouvez assurer une communication transparente d'origine transversale entre les applications frontales et les API Web back-end, permettant de partager les données et les fonctionnalités entre les domaines.

Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3