.net Core 3.x 中HttpContext的使用

之前写FrameWork 代码的时候,如果要获取当前请求的信息,我们都会使用HttpContext.Current 来获取信息。但是在.netCore 中,我们不能这样去获取,那么怎么去使用呢?ASP.NET Core中提供了一个IHttpContextAccessor接口,HttpContextAccessor 默认实现了它简化了访问HttpContext,废话不说,直接撸代码,具体如下:

1.我们需要在StartUp.cs 文件中添加红色方框里边的代码,采用依赖注入的方式注入HttpContextAccessor对象,通过该对象我们可以获得请求httpContext信息。

 .net Core 3.x 中HttpContext的使用

2.如果我们直接在Controller 中使用HttpContext 信息,可以直接通过下边方式去获取,例如下边图片中我们获取到了请求的ip 地址信息。注释掉的代码请直接忽视

 .net Core 3.x 中HttpContext的使用

3.如果我们是在其他类中使用,比如Service 中,我们需要通过构造方式注入IHttpContextAccessor,然后就可以获取到httpContext对象,此处声明的Accessor 对象是放在BaseService 中的,为了理解方便,才拿出来放在MemberService 中的。,具体请看下图(注意:注入这个地方我使用了autofac 的属性注入,有不了解属性注入和构造函数注入,以及接口注入的可以自行百度。;另外 .netCore 中怎样使用autofac 请点击该链接 )https://blog.****.net/laosunlaiye/article/details/105771500

.net Core 3.x 中HttpContext的使用