httpModel 页面拦截

我的拦截类:

using System;
using System.Data;
using System.Configuration;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using System.Text.RegularExpressions;

namespace myhand
{
    public class hander:IHttpModule
    {

        #region IHttpModule 成员

        public void Dispose()
        {
          
        }

        public void Init(HttpApplication context)
        {
            context.BeginRequest += new EventHandler(context_BeginRequest);  
        }

        void context_BeginRequest(object sender, EventArgs e)
        {
            HttpApplication application = (HttpApplication)sender;
            HttpContext context = application.Context;
            HttpResponse response = context.Response;
            string path = context.Request.Path;
            string file = System.IO.Path.GetFileName(path);
            string url = context.Request.Url.ToString(); //得到当前请求的假URL
            int lastindex = url.LastIndexOf('/'); //从最后一个/取索引
            string filename = url.Substring(lastindex);//得到文件名
            //  if (File.Exists(Server.MapPath(fileUrl)))
            Regex reg = new Regex(@"(\d+)\.aspx");
            if (reg.IsMatch(filename))
                context.RewritePath("test_EN.aspx");
            else
                context.RewritePath(filename);
        }
        #endregion
    }
}

web Config中的配置

<httpModules>
            <add name="ScriptModule" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
      <add name="hander" type="myhand.hander, myhand"/>
    </httpModules>

posted @ 2012-05-24 22:18  (二少)在南极  阅读(1322)  评论(0编辑  收藏  举报