HttpContext简介

.Net Core中的HttpContext上下文是个抽象类,命名空间为Microsoft.AspNetCore.Http

所在程序集

\netstandard2.0\Microsoft.AspNetCore.Http.Abstractions.dll

 定义代码:

namespace Microsoft.AspNetCore.Http
{
//
// 摘要:
// Encapsulates all HTTP-specific information about an individual HTTP request.
public abstract class HttpContext
{
protected HttpContext();

一、在Mvc 控制器实例中包含了上下文对象

        public IActionResult Index()
{
HttpContext _context = this.HttpContext;
return View();
}

二、定义静态的IServiceProvider,全局获取当前请求上下文

特别说明此方法新版本中放弃使用,请使用其他方式:https://www.cnblogs.com/tianma3798/p/10361644.html

1.定义类

    public class TestOne
{
public static IServiceProvider ServiceProvider;
public static HttpContext GetContext()
{
object factory = ServiceProvider.GetService(typeof(Microsoft.AspNetCore.Http.IHttpContextAccessor)); HttpContext context = ((IHttpContextAccessor)factory).HttpContext; return context;
}
}

2.在配置文件Startup中,获取

        // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
public void Configure(IApplicationBuilder app, IHostingEnvironment env, IServiceProvider svp)
{
TestOne.ServiceProvider = svp;
.....
}

3.再其他任何地方使用

        public IActionResult Index()
{
HttpContext _context = this.HttpContext;
if (_context == TestOne.GetContext())
return Content("上线文相同");
return View();
}

注意:

因为IHttpContextAccessor接口默认不是由依赖注入进行实例管理的。

我们先要将它注册到ServiceCollection中,不然在IIS发布后获取factory实例为null

public void ConfigureServices(IServiceCollection services)
{
services.TryAddSingleton<IHttpContextAccessor, HttpContextAccessor>(); // Other code...
}

更多:

Asp.Net Core 视图整理(一)

Asp.Net Core异常处理整理

.Net Core配置文件读取整理

Asp.Net Core获取当前上下文对象的更多相关文章

  1. Asp.Net Core获取请求上下文HttpContext

    注:特别说明当前版本对应.Net Core2.1意义上框架 一.注入HttpContextAccessor ASP.NET Core中提供了一个IHttpContextAccessor接口,HttpC ...

  2. .NET Core 获取数据库上下文实例的方法和配置连接字符串

    目录 .NET Core 获取数据库上下文实例的方法和配置连接字符串 ASP.NET Core 注入 .NET Core 注入 无签名上下文 OnConfigure 配置 有签名上下文构造函数和自己n ...

  3. Nginx+Docker部署模式下 asp.net core 获取真实的客户端ip

    目录 Nginx+Docker部署模式下 asp.net core 获取真实的客户端ip 场景 过程还原 结论 参考资料 Nginx+Docker部署模式下 asp.net core 获取真实的客户端 ...

  4. 如何为ASP.NET Core的强类型配置对象添加验证

    原文: Adding validation to strongly typed configuration objects in ASP.NET Core 作者: Andrew Lock 译文: La ...

  5. Asp.Net Core获取请求信息/获取请求地址

     一.Asp.Net Core 2.0版本中目前HttpRequest是个抽象类 在控制器或视图上下文中获取到的 Request对象,是 DefaultHttpRequest的实例. 定义 如图 : ...

  6. asp.net core过滤器记录响应对象

    百度到的基本上就是读取response.body的流.然后记录完了之后,把流的index重新复位,这样也太麻烦了. 其实asp.net core团队肯定已经考虑到了这种需求,比如记录请求响应日志.给响 ...

  7. ASP.NET Core获取请求完整的Url

    在ASP.NET项目中获取请求完整的Url: 获取System.Web命名空间下的类名为HttpRequestBase的Url方法: /// <summary>在派生类中替代时,获取有关当 ...

  8. 基于Spring DM管理的Bundle获取Spring上下文对象及指定Bean对象

    在讲述服务注册与引用的随笔中,有提到context.getServiceReferences()方法,通过该方法可以获取到OSGI框架容器中的指定类型的服务引用,从而获取到对应的服务对象.同时该方法还 ...

  9. ASP.NET Core获取客户端IP地址

    1.在ConfigureServices注入IHttpContextAccessor // ASP.NET Core 2.1的注入方式 //services.AddHttpContextAccesso ...

随机推荐

  1. CentOS 7 通过 yum 安装 nodejs 和 npm

    curl --silent --location https://rpm.nodesource.com/setup_6.x | bash - yum install -y nodejs

  2. JDBC事务与事务隔离级别详解

    事务基本概念 一组要么同时执行成功,要么同时执行失败的SQL语句.是数据库操作的一个执行单元. 事务开始于: 连接到数据库上,并执行一条DML语句insert.update或delete 前一个事务结 ...

  3. 002.iSCSI服务端配置

    一 iSCSI target的磁盘种类 大型文件 单一分区(partition) 磁盘 数组 RAID LVM 二 iSCSI创建步骤 建立用于共享的磁盘设备(分区/磁盘/文件) 创建后备磁盘 创建相 ...

  4. vue-router填坑之路

    1.在结构化css时,习惯将不同的css文件通过一个入口文件打包,而入口文件在引入其他css文件时,需要强烈注意,要在单行末尾加分号: 少分号的,单行相对应的css文件会引用无效 @import '. ...

  5. [代码审计]covercms 后台getshell

    0x00 环境介绍 CMS名称: covercms 运行环境: php 5.6.27-nts + apache + mysql 系统版本: 1.16 漏洞等级:高危 漏洞简介: 后台awnotas.i ...

  6. 使用Plant Simulation连接SQL Server

    1. 在管理类库中添加ODBC. 2. 在控制面板->管理工具中设置ODBC,添加SQL Server服务. 3. 在plant simulation中将信息流中的ODBC添加到Frame中. ...

  7. 【BZOJ-4184 】 Shallot 线段树按时间分治 + 线性基

    4184: shallot Time Limit: 30 Sec  Memory Limit: 128 MBSubmit: 356  Solved: 180[Submit][Status][Discu ...

  8. hdu 5742 It's All In The Mind 水题

    It's All In The Mind 题目连接: http://acm.hdu.edu.cn/showproblem.php?pid=5742 Description Professor Zhan ...

  9. InnoDB 与 MYISAM

    http://www.cnblogs.com/sopc-mc/archive/2011/11/01/2232212.html

  10. LINUX 内核学习博客

    http://www.cnblogs.com/yjf512/category/385367.html