Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
Wie bekomme ich die Client IP-Adresse unter ASP.NET Core in Docker heraus?
Shojo
myCSharp.de - Member



Dabei seit:
Beiträge: 8

Themenstarter:

Wie bekomme ich die Client IP-Adresse unter ASP.NET Core in Docker heraus?

beantworten | zitieren | melden

Guten Tag die Runde,

ich habe eine ASP.NET Core 2.2 Anwendung einen Docker Container hinter einen Nginx Proxy https://github.com/jwilder/nginx-proxy am laufen.
Jetzt habe ich das Problem das ich über Request.HttpContext.Connection.RemoteIpAddress nur die IP 172.20.0.1 zurückbekomme statt die eigentliche IP des Clients.

Ich habe bereits die folgende Zeilen in der Startup.cs hinzugefügt:


app.UseForwardedHeaders(new ForwardedHeadersOptions
{
                ForwardedHeaders = ForwardedHeaders.XForwardedFor | ForwardedHeaders.XForwardedProto
 });

und für den Nginx die /etc/nginx/proxy.conf angelegt mit den Inhalt;

proxy_http_version 1.1;
proxy_buffering off;
proxy_set_header Host $http_host;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $proxy_connection;
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 $proxy_x_forwarded_proto;
proxy_set_header X-Forwarded-Ssl $proxy_x_forwarded_ssl;
proxy_set_header X-Forwarded-Port $proxy_x_forwarded_port;
proxy_set_header Proxy "";

Habe ich was übersehen?
Hat da wer ein Anstoß für mich?

Gruß
Shojo
private Nachricht | Beiträge des Benutzers
Abt
myCSharp.de - Team

Avatar #avatar-4119.png


Dabei seit:
Beiträge: 16214

beantworten | zitieren | melden

Ist UseForwardedHeaders auch wirklich die erste registrierte Middleware, wie es auch die Dokumentation sagt?
Das beachten leider die meisten nicht...

Ansonsten verwende ich das Snippet hier:


app.UseForwardedHeaders(new ForwardedHeadersOptions
{
    ForwardedHeaders = ForwardedHeaders.All,
    ForwardLimit = null, // null = disable check
    RequireHeaderSymmetry = false,
    KnownProxies = { IPAddress.Parse("<IP Adresse 1>"), IPAddress.Parse("<IP Adresse n...>") },
});
- performance is a feature -

Microsoft MVP - @Website - @blog - @AzureStuttgart - github.com/BenjaminAbt
private Nachricht | Beiträge des Benutzers
Shojo
myCSharp.de - Member



Dabei seit:
Beiträge: 8

Themenstarter:

beantworten | zitieren | melden

Ja ich habe da die Doku sauber befolgt, aber dein Snippet brachte den gewünschten Erfolg

Ich danke dir für die Hilfe!
private Nachricht | Beiträge des Benutzers