asp.net-core-3.1 - 是否可以从 ASP.NET Core 3.1 中的服务类(控制器外部)获取客户端的 IP 地址?
问题描述
我已经看到很多帖子详细说明了如何在控制器内部获取 IP 地址,但是我有一些 C# 服务类可以完成大部分工作,它们是从控制器调用的。
我需要能够从这些服务类中获取客户端的 IP 地址等,并且希望不必将上下文从控制器发送到服务类。这可能吗?
先感谢您。
解决方案
一种方法是HttpContext
通过方法的参数。简单直接的解决方案。可悲的是,不确定这件事的利弊。
另一种方式,根据 ASP.NET Core 3.1 文档,您可以通过它进行注入IHttpContextAccessor
和访问HttpContext
。恕我直言,这将是更优雅的方式。
推荐阅读
- c# - 已导入具有相同简单名称“IdentityModel”的程序集。请尝试删除其中一个引用或对其进行签名以启用并排
- javascript - 通过Java清除IE中的cookies
- kendo-ui - 无法使用 Kendo UI 调度程序自定义视图
- r - R 在 parLapply 中使用变量
- python - Cython“模板参数中的未知类型”错误
- java - 如果目标字段值为空,则选择列表项替代字段值
- java - 避免 Hibernate Criteria 中的重复行
- javascript - 从子组件修改父数组 - React
- php - 将下拉值更改为正确的颜色 WooCommerce
- android - 在 attachBaseContext 中使用 dagger-injected 对象