首页 > 解决方案 > 是否可以从 ASP.NET Core 3.1 中的服务类(控制器外部)获取客户端的 IP 地址?

问题描述

我已经看到很多帖子详细说明了如何在控制器内部获取 IP 地址,但是我有一些 C# 服务类可以完成大部分工作,它们是从控制器调用的。

我需要能够从这些服务类中获取客户端的 IP 地址等,并且希望不必将上下文从控制器发送到服务类。这可能吗?

先感谢您。

标签: asp.net-core-3.1

解决方案


一种方法是HttpContext通过方法的参数。简单直接的解决方案。可悲的是,不确定这件事的利弊。

另一种方式,根据 ASP.NET Core 3.1 文档,您可以通过它进行注入IHttpContextAccessor和访问HttpContext。恕我直言,这将是更优雅的方式。


推荐阅读