我正在开发一个IIS模块,当我向我的网络服务器(托管和非托管)上的所有类型的页面发出请求时,该模块应该被触发。为了实现这一点,我实现了IHttpModule
接口,该接口具有必须实现的名为HandleRequest
的方法。在方法上下文中,我可以访问HttpApplication
对象和HttpContext
对象。
在这些对象或任何其他地方是否有任何指示来判断模块现在正在处理的请求是发布到托管页面(例如aspx,asmx,web-api,mvc,wcf)还是发布到非托管页面(例如jpg,css,htm ..)。
以下是代码:
public class MyPreIISReqeustModule : System.Web.IHttpModule
{
public void Dispose()
{
}
public void Init(HttpApplication context)
{
context.BeginRequest += new EventHandler(HandleRequest);
}
protected void HandleRequest(Object sender, EventArgs e)
{
if (managed_page_request)
{......}
else
{......}
}
}