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

时间:2016-03-04 10:55:13

标签: c# asp.net-core asp.net-core-mvc asp.net-core-1.0

我们发现ASP.NET核心(1.0 RC1)和Request.UserHostAddress中没有Request.ServerVariables["REMOTE_ADDR"],它们的返回基本相同。

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

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

1 个答案:

答案 0 :(得分:1)

您只能获得X-Forwarded - 当您将该中间件连接到管道中时替换它。因此,要启用app.UseOverrideHeaders()

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