如何在 .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