Ich möchte CORS auf einer API mit ASP.NET Core MVC aktivieren, aber alle aktuellen Dokumente beziehen sich auf frühere Versionen dieses Framework .Wie aktivieren Sie Cross-Ursprungsanforderungen (CORS) in ASP.NET Core MVC
Antwort
Die Anmerkungen zu den neuen Cors-Funktionen sind sehr leicht, aber ich konnte es durch die neuen Klassen und Methoden in meiner Lösung zum Laufen bringen. Meine Web-API startup.cs sieht so aus. Sie können sehen, wie Sie Ihre Ursprünge und Richtlinien mit der neuen Klasse CorsPolicy
konstruieren können. Und das Aktivieren von CORS mit den Methoden AddCors
und UseCors
.
public void ConfigureServices(IServiceCollection services)
{
services.AddMvc();
//Add Cors support to the service
services.AddCors();
var policy = new Microsoft.AspNet.Cors.Core.CorsPolicy();
policy.Headers.Add("*");
policy.Methods.Add("*");
policy.Origins.Add("*");
policy.SupportsCredentials = true;
services.ConfigureCors(x=>x.AddPolicy("mypolicy", policy));
}
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
// Configure the HTTP request pipeline.
app.UseStaticFiles();
//Use the new policy globally
app.UseCors("mypolicy");
// Add MVC to the request pipeline.
app.UseMvc();
}
Sie können auch die Politik in den Controllern mit den neuen Attributen Referenz wie so
[EnableCors("mypolicy")]
[Route("api/[controller]")]
Nur eine Anmerkung, ich musste 'Microsoft.AspNet.Cors' hinzufügen mein project.json, damit dies funktioniert, genauer gesagt, die Zeile "app.UseCors (" mypolicy ");" meldete einen Fehler, bis das Paket hinzugefügt wurde. In meinem Fall habe ich die Version '1.0.0-beta6' verwendet (anstelle der finalen' 5.2.3' Version auch verfügbar). Außerdem ist es wichtig, '' Microsoft.AspNet.Builder; 'zu' Startup.cs' hinzuzufügen, wenn es nicht bereits vorhanden ist. – Gertsen
Bitte schauen Sie hier nach vNext und MVC6: https://neelbhhatt40.wordpress.com/2015/09/10/what-is-cors-and-how-to-enable-it-in-asp-net-5vnext/ – Neel
Nur eine Anmerkung für Leute ... es funktionierte nicht für mich, bis ich realisierte, dass ich die UseCors vor die UseMvc-Linie stellen musste. – Michael
Unterstützung für CORS ist derzeit in der Entwicklung. Nach Ausgabe verfolgt, dass: https://github.com/aspnet/Mvc/issues/498
Update (2015.03.28):
Diese Funktion überprüft wurde und soll in der nächsten Version zur Verfügung steht.
Bitte schauen Sie hier für vNext und MVC6: https: // neelbhhatt40.wordpress .com/2015/09/10/what-is-cors-und-wie-aktivieren-es-in-asp-net-5vnext/ – Neel
Ich habe es funktioniert mit dem folgenden Code:
public void ConfigureServices(IServiceCollection services)
{
services.AddMvc();
services.AddCors(options => options.AddPolicy("AllowAll", p => p.AllowAnyOrigin()));
}
Sie können Kette AllowAnyHeader()
und/oder AllowAnyMethod()
bei Bedarf zur Konfigurationsaktion.
Um es für die komplette App zu konfigurieren:
public void Configure(IApplicationBuilder app)
{
app.UseCors("AllowAll");
}
Oder einfach nur für einen Controller:
[EnableCors("AllowAll")]
public class HomeController : Controller
{
// ...
}
-
Update: Konfiguration CORS für alle Anfragen können etwas einfacher gemacht werden:
public void ConfigureServices(IServiceCollection services)
{
services.AddMvc();
services.AddCors();
}
public void Configure(IApplicationBuilder app)
{
app.UseCors(builder =>
{
builder.WithOrigins("http://some.origin.com")
.WithMethods("GET", "POST")
.AllowAnyHeader();
});
}
Weitere Informationen finden Sie unter docs.
cs1929 die Methode services.ConfigureCors (...) existiert nicht mehr. Es ist zu AddCors kombiniert:
services.AddCors(options =>
options.AddPolicy("AllowAllOrigins", builder => builder.AllowAnyOrigin()));
In den jüngsten RC2
von ASP.NET-Core.
Die NuGet Pakete sind
"Microsoft.AspNetCore.Owin": "1.0.0-rc2-final",
"Microsoft.AspNetCore.Cors": "1.0.0-rc2-final",
In Startup.cs
public void ConfigureServices(IServiceCollection services)
{
// Add framework services.
services.AddCors();
services.AddMvc();
}
public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
{
loggerFactory.AddConsole(Configuration.GetSection("Logging"));
loggerFactory.AddDebug();
app.UseCors(builder => builder
.AllowAnyOrigin());
app.UseMvc();
}
Wenn ein Browser eine Pre-Flight-Anfrage verwendet (https://docs.asp.net/en/latest/security/cors.html#preflight-requests), müssen Sie auch erlaubte Header und Methoden einstellen: 'app.UseCors (_ => _.AllowAnyOrigin(). AllowAnyHeader(). AllowAnyMethod()) ' –
Install: Microsoft.AspNetCore.Cors
In Configure-Methode:
app.UseCors(builder =>
builder.WithOrigins("http://some.origin.com"));
- 1. So aktivieren Sie CORS in ASP.NET Core
- 2. Aktivieren der Client-basierten Kultur in Asp.Net Core
- 3. Wie erzwingen Sie Kleinbuchstaben-Routing in ASP.NET Core MVC 6?
- 4. Wie in returnUrl AccessDeniedPath in ASP.NET MVC 6 (ASP.NET Core)
- 5. asp.net core mvc password validators
- 6. 5 Aktivieren asp.net Broker MVC
- 7. ASP.NET Core MVC View-Komponenten
- 8. Deserialisieren von XML in Asp.NET Core MVC
- 9. Wo ist Request.IsAjaxRequest() in Asp.Net Core MVC?
- 10. Äquivalent von "@section" in ASP.NET Core MVC?
- 11. Nesting TagHelpers in ASP.NET MVC-Core 6
- 12. asp.net mvc core - äquivalent zu User.IsSignedIn()
- 13. Aktivieren DataAnnotations in Voll-/Core-Plattformen von .NET-Core
- 14. Wie benutzerdefinierte Tag-Helfer in asp.net Core mvc 6 erstellen?
- 15. Wie Verwenden von HTML-Verknüpfungen in ASP.Net Core MVC?
- 16. Wie behalte Richtlinienautorisierungsergebnisse für Benutzer in ASP.NET Core, MVC 6?
- 17. Wie kann ich URL-Referrer in ASP.NET Core MVC abrufen?
- 18. ASP.NET Core MVC-Authentifizierung mit vorhandener Datenbank
- 19. Wie aktivieren Sie die Touch-Interaktion in Core Plot?
- 20. Wie Sie den Speicherort der Ansicht in asp.net Core Mvc angeben, wenn Sie benutzerdefinierte Speicherorte verwenden?
- 21. Wie konsumieren Sie einen Core MVC WebApi ab sofort in eine andere Core MVC Application?
- 22. Schreiben Sie HTML-Code in asp.net (C#) (. Cs) Seite
- 23. WebTelemetryInitializerBase in ASP.NET Core/MVC6
- 24. System.Data.Entity.Spatial Ersetzung in ASP.NET Core
- 25. Aktivieren Sie CORS für MVC und AngularJS
- 26. Wie man jQuery Validierung mit ASP.NET MVC manuell aktivieren
- 27. Output IIS mit MVC und ASP.NET-Core in Azure
- 28. CS 1061 Fehler auf ASP.Net
- 29. ASP.NET Core Route ändern
- 30. Wie Projekt Verweis auf ASP.NET Core 1.0 MVC-Projekt hinzufügen
Wie wäre das? http://www.asp.net/web-api/overview/security/enabling-cross-origin-requests-in-web-api – lcryder
Wie in den "neuen" Dokumenten dokumentiert: http: //docs.asp. net/de/latest/security/cors.html und http://mvc.readthedocs.org/en/latest/security/cors-policy.html – Daniel
Bitte schauen Sie hier: https: //neelbhhatt40.wordpress. com/2015/09/10/was-ist-kors-und-wie-zu-enable-it-in-asp-net-5vnext/ – Neel