Как приложение ASP.NET Core MVC может получить IP-адрес клиента, когда сервер находится за AWS ELB? - PullRequest
1 голос
/ 03 мая 2019

Я запускаю приложение ASP.NET Core MVC на AWS в среде Elastic Beanstalk, включающей ELB.

Я использую этот код для получения IP-адреса клиента:

HttpContext.Connection.RemoteIpAddress.ToString()

Однако при этом возвращается IP-адрес балансировщика нагрузки, а не IP-адрес клиента. Я считаю, что RemoteIPAddress возвращает адрес, сохраненный в заголовке HTTP X-Forwarded-For, который теоретически должен быть IP-адресом клиента, но это не так.

Итак, я следовал инструкциям по включению Proxy Protocol для ELB на основе этих инструкций .

Но все равно не повезло. RemoteIPAddress по-прежнему возвращает тот же IP-адрес ELB вместо IP-адреса клиента.

Кто-нибудь смог получить IP-адрес клиента при запуске приложения ASP.NET Core MVC на AWS за ELB? Если так, то как?

Любая помощь будет принята с благодарностью.

1 Ответ

1 голос
/ 03 мая 2019

Вы можете просто посмотреть на заголовок X-Fowarded-For для исходного IP-адреса.

Чтобы получить доступ к заголовкам, посмотрите HttpContext.Current.Request.Headers или HttpContext.Request.Headers

Я успешно перечислил исходный IP-адрес клиента при запуске приложения ASP.NET Core MVC на AWS за ELB с помощью этого метода

...