分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 前端开发

请求上下文HttpContext解释

发布时间:2023-09-06 01:17责任编辑:胡小海关键词:暂无标签

1 HttpContext上下文作用

   有关应用程序状态信息,处理的请求以及构建的响应等信息全部通过HttpContext上下文获取

2 Httpcontext类用于从头至尾跟踪请求的状态,他也是有关请求的所有可用信息(包括httpRequest和httpResponse对象)的通道

3 模块

  模块将实现System.web.IHttpModule接口,System.web.IHttpModule接口有两个方法

   Init(app):实例化模块类并将其传递给HttpApplication实例时,调用此方法。使用此方法可为HttpApplication事件注册处理程序方法。

  Dispose()  在完成请求处理后调用此方法

模块将在新建HttpApplication对象时进行实例化,每个HttpApplication对象都会获取它自己的一组模块对象,在实例化模块时将调用Init()方法,

和HttpApplication对象一样,模块也可用于处理多个请求(但一次只处理一个请求)

4 如何创建自定义的模块

创建一个实现IHttpModule的类

using System;using System.Collections.Generic;using System.Linq;using System.Web;namespace Events{ ???/// <summary> ???/// 模块功能,防止未通过身份验证的用户访问指定的窗体 ???/// </summary> ???public class ParamsModule : IHttpModule ???{ ???????public void Dispose() ???????{ ???????????????????} ???????public void Init(HttpApplication app) ???????{ ???????????app.PostAuthenticateRequest += (src, args) => ????????????{ ???????????????if (app.Request.Url.LocalPath=="/Params.aspx"&&!app.User.Identity.IsAuthenticated) ???????????????{ ???????????????????app.Context.AddError(new UnauthorizedAccessException()); ???????????????} ???????????}; ???????} ???}}


 第二部注册自定义的模块(asp.net framework不会自动搜索模块类),使它成为生命周期的一部分,在web.config文件中注册

  <system.webServer>
    <modules>
      <add name="ParamsProtecttion" type="Events.ParamsModule"/>
    </modules>
  </system.webServer>

如何让模块自动注册到asp.net framework,而不用使用配置?

using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;using System.Web;//特性告诉asp.net fromework他应在应用程序启动时调用ModuleRegistration类中的RegisterModules方法[assembly:PreApplicationStartMethod(typeof(CommonModules.ModuleRegistration), "RegisterModules")]namespace CommonModules{ ???public ?class ModuleRegistration ???{ ???????public static void RegisterModules() ???????{ ???????????Type[] moduleTypes = ???????????{ ???????????????typeof(CommonModules.TimerModule), ???????????????typeof(CommonModules.LogModule) ???????????}; ???????????foreach (Type item in moduleTypes) ???????????{ ???????????????HttpApplication.RegisterModule(item); ???????????} ???????} ???}}

这样就不用在web.config文件中注册了

 

请求上下文HttpContext解释

原文地址:http://www.cnblogs.com/mibing/p/7657862.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved