首页 > 解决方案 > 如何在 .NET Core 2.1 中获取 API 调用者详细信息?

问题描述

无论谁在 .NET Core 2.1 中使用我的 API,如何获取可能的详细调用者信息?

以下是我设计 API 端点的方式:

在此处输入图像描述

标签: .net.net-coreasp.net-core-webapiasp.net-apicontroller

解决方案


根据您的描述,我建议您可以使用 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;

更多细节,你可以参考这篇文章


推荐阅读