加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net-core – RemoteIpAddress始终为null

发布时间:2020-12-16 04:12:46 所属栏目:asp.Net 来源:网络整理
导读:var test1 = HttpContext.Features.GetIHttpConnectionFeature();var test2 = HttpContext.Connection.RemoteIpAddress; 在IISExpress上本地运行应用程序时,这两行正确返回值0:0:1. 当我在IIS 7.5(在VM上运行)上发布应用程序时. RemoteIpAddress始终为null
var test1 = HttpContext.Features.Get<IHttpConnectionFeature>();
var test2 = HttpContext.Connection.RemoteIpAddress;

在IISExpress上本地运行应用程序时,这两行正确返回值0:0:1.

当我在IIS 7.5(在VM上运行)上发布应用程序时. RemoteIpAddress始终为null

我正在使用ASP.Net 5 RC 1.

如何在ASP.NET 5应用程序中获取客户端的IP地址?

我在以下问题中尝试了解决方案,但是我遇到了上面提到的问题:

> Question 1
> Question 2

解决方法

你所看到的是准确的,如果没有用的话. IIS处的连接终止,然后转发到v.next Web服务器Kestrel,因此与Web服务器的连接确实来自localhost.

您需要做的是启用对X-Forwarded-For的支持

>添加Microsoft.AspNet.HttpOverrides包
>在您的Configure()方法中添加

app.USEOverrideHeaders(new OverrideHeaderMiddlewareOptions
    {
        ForwardedOptions = ForwardedHeaders.XForwardedFor | 
                           ForwardedHeaders.XForwardedProto
    });

请注意,此包将在RC2中更改,以使其更安全.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读