如何在 .NET Core 2.1 中获取 API 调用方详细信息?
How to get API caller detail info in .NET Core 2.1?
如何在 .NET Core 2.1 中获取使用我的 API 的可能的详细调用方信息?
这是我设计 API 端点的方式:
根据你的描述,我建议你可以使用httpcontextaccessor的httprequest上下文获取客户端信息。
如果你想在你的控制器中使用它,你应该首先注册 startup.cs。
public void ConfigureServices(IServiceCollection services)
{
services.AddHttpContextAccessor();
services.AddControllers();
services.AddSwaggerGen(c =>
{
c.SwaggerDoc("v1", new OpenApiInfo { Title = "CoreAPINormalIssue", Version = "v1" });
});
}
然后在控制器里面,你应该使用下面的代码:
private readonly IHttpContextAccessor _httpContextAccessor;
public WeatherForecastController(ILogger<WeatherForecastController> logger, IHttpContextAccessor httpContextAccessor)
{
_logger = logger;
_httpContextAccessor = httpContextAccessor;
}
然后在控制器内部:
// Get the client IP address.
var re = _httpContextAccessor.HttpContext.Connection.RemoteIpAddress;
更多细节,你可以参考这个article。
如何在 .NET Core 2.1 中获取使用我的 API 的可能的详细调用方信息?
这是我设计 API 端点的方式:
根据你的描述,我建议你可以使用httpcontextaccessor的httprequest上下文获取客户端信息。
如果你想在你的控制器中使用它,你应该首先注册 startup.cs。
public void ConfigureServices(IServiceCollection services)
{
services.AddHttpContextAccessor();
services.AddControllers();
services.AddSwaggerGen(c =>
{
c.SwaggerDoc("v1", new OpenApiInfo { Title = "CoreAPINormalIssue", Version = "v1" });
});
}
然后在控制器里面,你应该使用下面的代码:
private readonly IHttpContextAccessor _httpContextAccessor;
public WeatherForecastController(ILogger<WeatherForecastController> logger, IHttpContextAccessor httpContextAccessor)
{
_logger = logger;
_httpContextAccessor = httpContextAccessor;
}
然后在控制器内部:
// Get the client IP address.
var re = _httpContextAccessor.HttpContext.Connection.RemoteIpAddress;
更多细节,你可以参考这个article。