Comment faire pour activer la SCRO en ASP.NET de Base
Je suis en train d'activer l'origine de la croix-partage des ressources sur mon ASP.NET Web de Base de l'API, mais je suis coincé.
La EnableCors
attribut accepte policyName
de type string
comme paramètre:
//Summary:
// Creates a new instance of the Microsoft.AspNetCore.Cors.Core.EnableCorsAttribute.
//
//Parameters:
// policyName:
// The name of the policy to be applied.
public EnableCorsAttribute(string policyName);
Ce qui ne l' policyName
signifie et comment puis-je configurer de la SCRO sur un ASP.NET de Base de l'API Web?
- voici l'article docs.microsoft.com/en-us/aspnet/core/security/cors
Vous devez vous connecter pour publier un commentaire.
Vous devez configurer un SCRO politique au démarrage de l'application dans le
ConfigureServices
méthode:La
CorsPolicyBuilder
dansbuilder
vous permet de configurer la stratégie de vos besoins. Vous pouvez maintenant utiliser ce nom pour appliquer la stratégie des contrôleurs et des actions:Ou de l'appliquer à toutes les demandes:
UseCors
méthode d'extension. Notez que la SCRO middleware doit précéder tout points de terminaison définis dans votre application que vous souhaitez prendre en charge les requêtes d'origine (ex. avant tout appel àUseMvc
)."Si vous utilisez
.Net-Core 1.1
Malheureusement, les docs sont très confus dans ce cas précis. Donc je vais faire très simple:
Microsoft.AspNetCore.Cors
package nuget pour votre projetConfigureServices
méthode, ajouterservices.AddCors();
Dans
Configure
méthode, avant d'appelerapp.UseMvc()
etapp.UseStaticFiles()
, ajouter:Que c'est. Chaque client a accès à vos ASP.NET Base Site web/API.
Si vous utilisez
.Net-Core 2.0
Microsoft.AspNetCore.Cors
package nuget pour votre projetdans
ConfigureServices
méthode, avant d'appelerservices.AddMvc()
, ajouter:(Important) Dans
Configure
méthode, avant appelapp.UseMvc()
, ajouterapp.UseCors("AllowAll");
AllowAll
est le nom de la politique qui nous devons mentionner dans l'app.UserCors. Il pourrait être n'importe quel nom..UseCors()
avant.UseMvc()
Basé sur Henk de réponse j'ai été capable de trouver le nom de domaine spécifique, la méthode que je veux permettre à et aussi l'en-tête, je veux activer la SCRO pour:
utilisation:
To critique or request clarification from an author
Je ne pense pas que ce soit le cas ici et Henk de réponse ont été déjà marquées. Ma réponse était un add-on si vous souhaitez permettre à des domaines spécifiques.ConfigureCors
a été changé pourAddCors
.`
`
Si vous hébergez sur IIS, une des raisons possibles est que vous obtenez c'est parce que IIS est le blocage
OPTIONS
verbe. J'ai passé presque une heure à cause de cela:Un révélateur indication est que vous obtenez
404
erreur lors de l'OPTIONS
demande.Pour corriger cela, vous devez indiquer explicitement IIS pas pour bloquer
OPTIONS
demande.Allez à la Demande de Filtrage:
Assurez-vous que les OPTIONS sont autorisés:
Ou, il suffit de créer un
web.config
avec le paramètre suivant:Spécifiquement dotnet core 2.2 avec SignalR vous devez modifier
.WithOrigins("http://localhost:3000")
ou.SetIsOriginAllowed(isOriginAllowed: _ => true) //for all origins
au lieu
.AllowAnyOrigin()
avec.AllowCredentials()
https://trailheadtechnology.com/breaking-change-in-aspnetcore-2-2-for-signalr-and-cors/
https://github.com/aspnet/AspNetCore/issues/4483