linux社区爱心援助Linux认证系列教程业界动态站务新闻公司招聘网络学院网址大全LPI专题CISCO专题
设为首页
加入收藏
管理团队
JSP  
JAVA  
PERL  
 您的位置:首页 > 开发语言 > c/c++/c# >
栏目导栏
  php
  JSP
  ASP
  asp.net
  JAVA
  c/c++/c#
  perl
  JavaScript
  Basic
  Delphi
资料搜索
热门文章
·Windows/Linux下配置Eclipse+C
·c语言static与extern的用法
·VC++(Ctime日期函数)应用
·typedef struct和struct的区别
·C/C++对文件操作
·C常用算法程序实例-线性代数方
·C#发送Email邮件方法总结
·struct的初始化,拷贝及指针成
·C语言入门实例 switch使用
·c++二叉树实现源代码
·对初学者的建议:如何学习C语言
·C++ Builder 处理控件中的文本
·常用的BCB & Delphi 函数
·C++入门经典教程完全版01-引言
·C++ Builder 使用Canvas对象的
最新文章
·使用C/C++扩展Python
·C语言入门实例 switch使用
·在C#里实现DATAGRID的打印预览
·如何使用 Visual C# .NET 创建
·C#发送Email邮件方法总结
·一道C#面试题目引发的思考
·c语言艺术清屏
·c语言static与extern的用法
·大数的阶乘算法
·C#编码好习惯
·构造函数,复制构造函数
·typedef struct和struct的区别
·struct的初始化,拷贝及指针成
·超强的指针学习笔记推荐
·STL中erase方法对链表类容器的
Google
 
如何使用 Visual C# .NET 创建 ASP.NET HTTP 模块
[ 作者:  加入时间:2007-11-26 16:16:56  来自:Linux联盟收集整理 ]
 实现模块 Sa2Linux联盟
  1. 新建一个名为 MyModule 的 Visual Studio .NET C# 类库项目。 Sa2Linux联盟
  2. 设置一个对 System.Web.dll 程序集的引用。 Sa2Linux联盟
  3. 将以下指令添加到该类中: Sa2Linux联盟
   using System.Web; Sa2Linux联盟
   Sa2Linux联盟
   Sa2Linux联盟
  4. 重命名 SyncModule.cs 类,然后相应地更改类定义。 Sa2Linux联盟
  5. 实现 IHttpModule 接口。您的类定义应如下所示: Sa2Linux联盟
   public class SyncModule : IHttpModule Sa2Linux联盟
   Sa2Linux联盟
   Sa2Linux联盟
  6. 决定要预订哪些事件。下表概括了可从 HttpApplication 对象预订的事件: Sa2Linux联盟
  • AcquireRequestState:调用此事件可允许模块获取或创建请求的状态(例如,会话)。 Sa2Linux联盟
  • AuthenticateRequest:当安全模块在处理请求前需要对用户进行身份验证时,调用此事件。 Sa2Linux联盟
  • AuthorizeRequest:当请求需要经过授权时,安全模块就会调用此事件。此事件是在身份验证后调用的。 Sa2Linux联盟
  • BeginRequest:调用此事件以通知模块新请求即将开始。 Sa2Linux联盟
  • Disposed:调用此事件以通知模块由于某种原因应用程序即将终止。允许模块进行内部清理。 Sa2Linux联盟
  • EndRequest:调用此事件以通知模块该请求即将结束。 Sa2Linux联盟
  • Error:调用此事件以通知模块在请求处理过程中发生了错误。 Sa2Linux联盟
  • PostRequestHandlerExecute:调用此事件以通知模块处理程序已完成对请求的处理。 Sa2Linux联盟
  • PreRequestHandlerExecute:调用此事件以通知模块将调用用于处理请求的处理程序。 Sa2Linux联盟
  • PreSendRequestContent:调用此事件以通知模块将向客户端发送请求内容。 Sa2Linux联盟
  • PreSendRequestHeaders:调用此事件以通知模块将向客户端发送 HTTP 头。 Sa2Linux联盟
  • ReleaseRequestState:调用此事件以允许模块在处理程序完成对请求的处理后释放状态。 Sa2Linux联盟
  • ResolveRequestCache:在身份验证后调用此事件。缓存模块使用此事件确定该请求是否应该由其缓存处理,或者处理程序是否应该处理该请求。 Sa2Linux联盟
  • UpdateRequestCache:在处理程序响应后调用此事件。缓存模块应根据该响应来更新其缓存。 Sa2Linux联盟
  本示例使用了 BeginRequest 事件。 Sa2Linux联盟
  7. 按以下方式实现 IHttpModule 接口的 Init 和 Dispose 方法: Sa2Linux联盟
   public void Init(HttpApplication app) Sa2Linux联盟
   { Sa2Linux联盟
   app.BeginRequest += new EventHandler(OnBeginRequest); Sa2Linux联盟
   } Sa2Linux联盟
   public void Dispose(){ } Sa2Linux联盟
   Sa2Linux联盟
   Sa2Linux联盟
  8. 按以下方式为事件创建一个委托: Sa2Linux联盟
   public delegate void MyEventHandler(Object s, EventArgs e); Sa2Linux联盟
   Sa2Linux联盟
   Sa2Linux联盟
  9. 定义一个 MyEventHandler 类型的私有局部变量以记录对该事件的引用: Sa2Linux联盟
   private MyEventHandler _eventHandler = null; Sa2Linux联盟
   Sa2Linux联盟
   Sa2Linux联盟
  10. 创建一个事件将该委托挂接到 Global.asax 文件中的方法或从 HttpApplication 对象继承的类: Sa2Linux联盟
   public event MyEventHandler MyEvent Sa2Linux联盟
   { Sa2Linux联盟
   add { _eventHandler += value; } Sa2Linux联盟
   remove { _eventHandler -= value; } Sa2Linux联盟
   } Sa2Linux联盟
   Sa2Linux联盟
   Sa2Linux联盟
  11. 创建 OnBeginRequest 方法,该方法挂接到 HttpApplication 的 BeginRequest 事件: Sa2Linux联盟
   public void OnBeginRequest(Object s, EventArgs e) Sa2Linux联盟
   { Sa2Linux联盟
   HttpApplication app = s as HttpApplication; Sa2Linux联盟
   app.Context.Response.Write("Hello from OnBeginRequest in custom module.<br>"); Sa2Linux联盟
   if(_eventHandler!=null) Sa2Linux联盟
   _eventHandler(this, null); Sa2Linux联盟
   } Sa2Linux联盟
   Sa2Linux联盟
   Sa2Linux联盟
  12. 编译该项目。 Sa2Linux联盟
   Sa2Linux联盟
   Sa2Linux联盟
   Sa2Linux联盟
  部署模块 Sa2Linux联盟
  1. 在 C:\Inetpub\Wwwroot 下新建一个名为 Module 的目录。 Sa2Linux联盟
  2. 在新创建的 Module 目录下创建一个名为 Bin 的子目录。这样,其路径为 C:\Inetpub\Wwwroot\Module\Bin。 Sa2Linux联盟
  3. 将 MyModule.dll 从项目的 Bin\Debug 目录复制到 C:\Inetpub\Wwwroot\Module\Bin 目录。 Sa2Linux联盟
  4. 按照下列步骤将新的 Module 目录标记为一个 Web 应用程序: a. 打开 Internet 服务管理器。 Sa2Linux联盟
  b. 右键单击 Module 目录,然后单击属性。 Sa2Linux联盟
  c. 在目录选项卡上,单击创建。 Sa2Linux联盟
  d. 单击确定以关闭 Module 属性对话框。 Sa2Linux联盟
   Sa2Linux联盟
   Sa2Linux联盟
   Sa2Linux联盟
   Sa2Linux联盟
   Sa2Linux联盟
  配置系统 Sa2Linux联盟
  1. 在 C:\Inetpub\Wwwroot\Module\ 目录下,新建一个名为 Web.config 的文件。 Sa2Linux联盟
  2. 将以下文本粘贴到 Web.config 文件中: Sa2Linux联盟
   <configuration> Sa2Linux联盟
   <system.web> Sa2Linux联盟
   <httpModules> Sa2Linux联盟
   <add name="MyModule" type="MyModule.SyncModule, MyModule" /> Sa2Linux联盟
   </httpModules> Sa2Linux联盟
   </system.web> Sa2Linux联盟
   </configuration> Sa2Linux联盟
   Sa2Linux联盟
   Sa2Linux联盟
   Sa2Linux联盟
   Sa2Linux联盟
   Sa2Linux联盟
  测试模块 Sa2Linux联盟
  1. 在 C:\Inetpub\Wwwroot\Module 目录下,新建一个名为 Test.aspx 的 .aspx 文件。 Sa2Linux联盟
  2. 将以下文本粘贴到 Test.aspx 文件中: Sa2Linux联盟
   %@Page Language="C#"% Sa2Linux联盟
   <% Response.Write("Hello from Test.aspx.<br>"); %> Sa2Linux联盟
   Sa2Linux联盟
   Sa2Linux联盟
  3. 在 C:\Inetpub\Wwwroot\Module 目录下,创建一个 Global.asax 文件。 Sa2Linux联盟
  4. 将以下代码粘贴到 Global.asax 文件中: Sa2Linux联盟
  <%@ Import Namespace="MyModule" %> Sa2Linux联盟
   <script language="C#" runat=server > Sa2Linux联盟
   protected void MyModule_OnMyEvent(Object src, EventArgs e) Sa2Linux联盟
   { Sa2Linux联盟
   Context.Response.Write("Hello from MyModule_OnMyEvent called in Global.asax.<br>"); Sa2Linux联盟
   } Sa2Linux联盟
   </script> Sa2Linux联盟
  5. 请求 Test.aspx 页。应该会看到以下文本行: Sa2Linux联盟
  Hello from OnBeginRequest in custom module. Sa2Linux联盟
   Hello from MyModule_OnMyEvent called in Global.asax. Sa2Linux联盟
   Hello from Test.aspx. Sa2Linux联盟
Linux联盟收集整理 ,转贴请标明原始链接,如有任何疑问欢迎来本站Linux论坛讨论
评论】【加入收藏夹】【 】【打印】【关闭
※ 相关链接
 ·新手怎么学习asp.net  (2007-11-26 16:15:21)
 ·对asp.net实现DropDownList、ListBox无刷新三级联动2  (2007-11-26 16:13:38)
 ·asp.net实现DropDownList、ListBox无刷新三级联动(javascrip)  (2007-11-26 16:12:52)
 ·asp.net实现ListBox、DropDownList无刷新三级联动(xmlhttp)  (2007-11-26 16:11:38)
 ·ASP.Net2.0使用Log4Net(二)  (2007-11-26 16:10:35)
 ·ASP.Net2.0使用Log4Net(一)  (2007-11-26 16:09:54)
 ·精通ASP.NET中弹出窗口技术  (2007-11-26 15:58:49)
 ·ASP.NET控件呈现方法的说明  (2007-11-26 15:56:45)
 ·用Php模拟asp.net的页面模型  (2007-11-22 16:17:06)
 ·Scott Mitchell 的ASP.NET 2.0数据教程之应用笔记  (2007-11-21 15:54:26)