using System; using System.Collections.Generic; using System.Linq; using System.Web; namespace ServiceSite { public class MHHandler : IHttpModule { public void Init(HttpApplication application) { application.BeginRequest += (new EventHandler(this.Application_BeginRequest)); application.EndRequest += (new EventHandler(this.Application_EndRequest)); } /* * 对直接请求比如http://w.com/12.html .aspx等处理直接转html页面 * 对资源.ico等不处理 * 对http://w.com/act/login.do等走cshtml分发处理 act调用方法 * 对http://w.com/actAj/login.aj走loginService ajax请求 actAj调用方法 * 注意/Views/Home/Login.html 和Views/Home/Login.html区别 */ /// /// 页面处理, /// /// /// private void Application_BeginRequest(Object source,EventArgs e) { HttpApplication application = (HttpApplication)source; HttpContext context = application.Context; int p = context.Request.RawUrl.LastIndexOf('?'); String baseUrl = (p > 0) ? context.Request.RawUrl.Substring(0, p) : context.Request.RawUrl; string filePath = context.Request.FilePath; string fileExtension = VirtualPathUtility.GetExtension(filePath); switch (fileExtension.ToLower()) { case ".PHP": case ".php": baseUrl = baseUrl.Replace(".php", ".aspx"); baseUrl = baseUrl.Replace(".PHP", ".aspx"); context.RewritePath(baseUrl); break; } } private void Application_EndRequest(Object source, EventArgs e) { HttpApplication application = (HttpApplication)source; HttpContext context = application.Context; string filePath = context.Request.FilePath; string fileExtension = VirtualPathUtility.GetExtension(filePath); if(fileExtension.Equals(".html")) { context.Response.Write("

" + "HelloWorldModule: End of Request

"); } } public void Dispose() { } } }