我环顾四周,已经回答了一些与此完全相同的问题,但是他们都将解决方案陈述为我目前正在尝试做的事情,但它仍然不起作用...... 目前,我正在使用 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 地址的最简单且有效的方法是什么,那么这是否行不通?
谢谢!
builder.Services.Configure<ForwardedHeadersOptions>(options =>
{
options.ForwardedHeaders = ForwardedHeaders.XForwardedFor | ForwardedHeaders.XForwardedProto;
});
app.UseForwardedHeaders();
在您的
program.cs
中添加这段代码,这将启用转发标头