Dieser Artikel beschreibt wie ein .Net Core Projekt aufzusetzen ist sowie ein evtl. eingesetzter NGINX Reverse-Proxy konfiguriert werden muss um CORS problemlos zu konfigurieren und zu verwenden.
Konfiguriert wird eine .NET Core 5 Applikation auf einem Debian 10 mit NGNIX Web Server.
1. Methode ConfigureServices in der Klasse Startup erweitern:
// ...
private static readonly string CorsPolicy = "CorsAllowAny";
// ...
public void ConfigureServices(IServiceCollection services)
{
services.AddCors(options =>
{
options.AddPolicy(CorsPolicy,
builder => builder.AllowAnyOrigin()
.AllowAnyMethod()
.AllowAnyHeader());
});
// ...
}
2. Methode Configure in der Klasse Startup erweitern
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
// ...
app.UseRouting(); // <<< Nach dieser Zeile
app.UseCors(CorsPolicy);
app.UseForwardedHeaders(new ForwardedHeadersOptions
{
ForwardedHeaders = ForwardedHeaders.XForwardedFor | ForwardedHeaders.XForwardedProto
});
app.UseAuthentication(); // <<< vor dieser Zeile bzw. vor UseEndpoints sollte es keine Auth geben
// ...
}
1. Erzeugen der Datei /etc/nginx/proxy.conf
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
client_max_body_size 10m;
client_body_buffer_size 128k;
proxy_connect_timeout 90;
proxy_send_timeout 90;
proxy_read_timeout 90;
proxy_buffers 32 4k;
2. Editieren der Datei /etc/nginx/nginx.conf
http {
include /etc/nginx/proxy.conf;
# ...
server {
# ...
add_header Strict-Transport-Security "max-age=63072000; includeSubdomains; preload";
add_header X-Frame-Options DENY;
add_header X-Content-Type-Options nosniff;
# ...
}
}
3. Neu laden des NGINX
service nginx reload