iT邦幫忙

3

[IIS][.NETCore] IIS Reverse Proxy 後 RemoteIpAddress 取值錯誤 !?

  • 分享至 

  • xImage
  •  

同步發表 Blog:[IIS][.NETCore] IIS Reverse Proxy 後 RemoteIpAddress 取值錯誤 !?

今天試著把 ASP.NET Core 放在 Docker Container 再利用 IIS Reverse Proxy 來對外但發生 IP 取值錯誤的問題
Request.HttpContext.Connection.RemoteIpAddress.ToString() 總是取到 Docker Host 的 IP

奮鬥了數個小時終於找到了一篇可以用的解答 .net Core X Forwarded Proto not working

Startup.cs 加上這段即可

var forwardingOptions = new ForwardedHeadersOptions()
{
    ForwardedHeaders = ForwardedHeaders.XForwardedFor | ForwardedHeaders.XForwardedProto
};
// its loopback by default
forwardingOptions.KnownNetworks.Clear(); 
forwardingOptions.KnownProxies.Clear();

app.UseForwardedHeaders(forwardingOptions);

原因是 .NETCore 預設只信任 127.0.0.1 傳送的 X-Forwarded-For,因為用了他台主機 Reverse Proxy 所以要調整信任清單,這樣就可以解決 IP 顯示不正確的問題。


圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言