У меня есть веб-приложение Razor Page, и я регистрирую IP-адреса пользователей. По какой-то причине он возвращает IP-адрес, но не IP-адрес пользователя клиента. Я полагаю, что это может быть возвращение IP с сервера?
Примечание: Я добавил регистрацию пользователей во всех других ASP. NET приложениях веб-форм и регистрирует правильные IP-адреса. Это наше единственное ASP. NET основное приложение, которое возвращает другой IP-адрес.
Я что-то упустил в методе ConfigureServices, который мешает ему получить IP-адрес пользователя?
Мой код из метода ConfigureServices в классе запуска:
public void ConfigureServices(IServiceCollection services)
{
services.Configure<ForwardedHeadersOptions>(options =>
{
options.ForwardedHeaders =
ForwardedHeaders.XForwardedFor | ForwardedHeaders.XForwardedProto;
});
services.AddRazorPages().AddRazorRuntimeCompilation();
services.AddAntiforgery(option =>
{
option.HeaderName = "XSRF-TOKEN";
option.SuppressXFrameOptionsHeader = false;
});
services.AddSession();
services.AddMemoryCache();
}
Я также вызываю метод UserForwardedHeaders в методе Configure следующим образом:
app.UseForwardedHeaders();
Я использую RemoteIPAddress при получении IP-адреса:
HttpContext.Connection.RemoteIpAddress.ToString()