gpt4 book ai didi

c# - 直接替换 ASP.NET Core 中的 UserHostAddress?

转载 作者:太空宇宙 更新时间:2023-11-03 12:50:20 26 4
gpt4 key购买 nike

我们发现 Request.UserHostAddress在 ASP.NET Core (1.0 RC1) 以及 Request.ServerVariables["REMOTE_ADDR"] 中不可用,返回的结果基本相同。

现在我们找到HttpContext.Connection.RemoteIpAddressHttpContext.Features.Get<IHttpConnectionFeature>()?.RemoteIpAddress是替代品,但它真的是功能的 1:1 替代品吗?

我的意思是:Request.ServerVariables["REMOTE_ADDR"]仅返回调用者的直接 IP 地址,而不是转发的客户端地址(因此您必须获得 "X-FORWARDED-FOR" )。这就是我们在我们的场景中需要的:直接调用者地址,而不是转发地址。但是如果 HttpContext.Connection.RemoteIpAddress 我们找不到任何信息在 ASP.NET Core 中是我们的正确选择(如果不是,还有什么选择?)。

最佳答案

当您将该中间件插入管道后,您只会得到 X-Forwarded-For 替换它。因此,要启用它,请使用 app.UseOverrideHeaders()

没有它,在大多数配置中,RemoteIpAddress 将是 127.0.0.1,因为您将在 Kestrel 前面安装 IIS。

关于c# - 直接替换 ASP.NET Core 中的 UserHostAddress?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35794237/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com