编写ASP.NET组件-2
时间:2011-04-06 来源:cqsike
深入理解ASP.NET中请求响应体系
ASP.NET的请求响应构架中包含了很多可扩展的组件,因此我们可以使用定制组件扩展其功能。
当用户向IIS请求文件之后,IIS如果判断其是无法处理的文件,比如.aspx文件,则读取其元数据(IIS metadata)查看对应的处理程序。
aspnet_isapi.dll获得文件请求后
为了响应请求,HttpRuntime调用HttpApplicationFactory来为其分配一个HttpApplication对象。
在HttpApplicationFactory的维护池中有一组HttpApplication对象,如果没有的话,HttpApplictionFactory就需要初始化HttpApplication对象。HttpApplictionFactory是根据machine.configand Web.configfiles中的<httpModules>配置来初始化HttpApplication对象的,如:
<configuration> <system.web> <httpModules> <httpModules> <add name="FormsAuthentication" type="System.Web.Security.FormsAuthenticationModule" /> <add name="RoleManager" type="System.Web.Security.RoleManagerModule" /> <add name="UrlAuthorization" type="System.Web.Security.UrlAuthorizationModule" /> <add name="ErrorHandlerModule" type="System.Web.Mobile.ErrorHandlerModule, System.Web.Mobile, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" /> </httpModules> </httpModules> </system.web> </configuration>
知道对应的Module之后,HttpApplication对象调用模块的Init方法完成初始化。所有的HTTP module都有IHttpModule接口其有两个方法:Dispose
和Init。
public interface IHttpModule { void Dispose(); void Init(HttpApplication context); }
相关阅读 更多 +