如何在 Blazor 服务器应用程序中正确获取远程 IP 地址?

问题描述 投票:0回答:1

我环顾四周,已经回答了一些与此完全相同的问题,但是他们都将解决方案陈述为我目前正在尝试做的事情,但它仍然不起作用...... 目前,我正在使用 Blazor-Server 应用程序,program.cs 文件中有此行:

builder.Services.AddHttpContextAccessor();

在我的一个页面上,我有这段代码来尝试获取此连接的远程 IP 地址:

@inject IHttpContextAccessor context;
context.HttpContext?.Connection.RemoteIpAddress?.ToString()

在我的本地机器测试中,它返回 127.0.0.1,但是当我实际使用 IIS 托管网站时,context.HttpContext 实际上是 null。我很好奇获取网站上用户的远程 IP 地址的最简单且有效的方法是什么,那么这是否行不通?

谢谢!

blazor blazor-server-side httpcontext
1个回答
0
投票
builder.Services.Configure<ForwardedHeadersOptions>(options =>
{
   options.ForwardedHeaders = ForwardedHeaders.XForwardedFor | ForwardedHeaders.XForwardedProto;
});

app.UseForwardedHeaders();

在您的

program.cs
中添加这段代码,这将启用转发标头

© www.soinside.com 2019 - 2024. All rights reserved.