架构师_程序员_码农网

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 9514|回复: 0

[ASP.NET] asp.net HttpContext的解释意义

[复制链接]
发表于 2018-3-13 21:28:21 | 显示全部楼层 |阅读模式
在.ashx中,我们HttpContext这个词,到底是什么意思?下面给大家说说

HttpContext 类:封装有关个别 HTTP 请求的所有 HTTP 特定的信息。

在处理请求执行链的各个阶段中,会有一个对象在各个对象之间进行传递,也即会保存请求的上下文信息,这个对象就是HttpContext对象。HttpContext封装了ASP.NET要处理的单次请求的所有信息。在请求处理机制建立时,HttpContext类有HttpRuntime对象实例化,接着该对象会经历请求生存期的各个阶段


HttpContext的介绍:保持单个用户、单个请求的数据,并且数据只在该请求期间保持。被提供用于保持需要在不同的HttpModules和HttpHandlers之间传递的值。它也可以用于保持某个完整请求的相应信息。

Current属性是个十分有用的静态成员,返回当前请求的HttpContex对象。Items是一个哈希表,在处理请求所涉及的模块和处理程序间共享数据。每个自定义模块或处理程序能够将自身信息添加到请求的HttpContext对象中,在Items中存储的信息最终被页面使用,但这些信息只能在请求的执行期间访问
HttpContext
定义:封装有关个别 HTTP 请求的所有 HTTP 特定的信息。

其实就是Http请求以及返回的所有信息都在里面。

HttpContext来自System.Runtime.Remoting.Messaging.CallContext.HostContext。这个HostContext定义是 获取或设置与当前线程相关联的主机上下文 (所以HttpContext只能在当前请求的线程中使用。)



HttpContext其实是保存在CallContext.HostContext这个属性中, 如果您还对HostContext感到好奇的话,您可以自己用Reflector.exe去看,我不想再贴代码了,因为有些类型和方法并不是公开的。




HttpContext.Current.Items 可以在 HttpModule 和 HTTPHandler 之间共享数据时使用,因为每次用户请求都要通过HTTP 运行时管道HttpModule 、HTTPHandler 。当你实现IHttpMoudle的方法来通过HttpMoudle向用户请求传递信息。你可以用HttpContext.Current.Items 在不同请求页,不同的HttpModule中传输数据,但是一旦请求结束,数据回发,这个集合中的数据将自己丢失。

例如,我们每次请求,想在ef中用同一个DbContext上下文对象,代码如下:








上一篇:根据UserAgent判断来访者是手机还是电脑
下一篇:Asp.Net IHttpHandler介绍
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

免责声明:
码农网所发布的一切软件、编程资料或者文章仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。如有侵权请邮件与我们联系处理。

Mail To:help@itsvse.com

QQ|手机版|小黑屋|架构师 ( 鲁ICP备14021824号-2 )|网站地图

GMT+8, 2024-4-16 14:10

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表