ASP.NET过滤器、URL重写
过滤器可以对指定的URL访问进行拦截,并执行过滤器的方法,根据实际应用情况,在过滤器中修改请求的代码、判断会话信息,也可以做权限控制。
一:编写过滤器,实现URL重写并配置过滤
编写过滤器,就是编写一个过滤器类,即HttpModule模块。应该实现IHttpModule基类,并重写Init方法。参考代码如下:
1、添加引用System.Web,导入命名空间using System.Web;2、实现IHttpModule接口,重写Init方法;3、在web.config中找到<httpModules></httpModules>,添加<add name="自定义" type="命名空间名.类名,命名空间名"/>。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Web;
using System.Text.RegularExpressions;
namespace Modules
{
public class MyModule:IHttpModule
{
#region IHttpModule 成员
public void Dispose()
{
}
public void Init(HttpApplication context)
{
//通过委托注册事件
context.BeginRequest += MyBeginRequest;
}
#endregion
void MyBeginRequest(object sender,EventArgs e)
{
HttpApplication app = (HttpApplication)sender;
string requestPath = app.Context.Request.Path;//获得请求的URL,例:/WebSite1/Login.6html
string fileName = System.IO.Path.GetFileName(requestPath);//获得路径中的文件名,Login.6html
Regex reg = new Regex("Login.(\\d+)html");
if (reg.IsMatch(requestPath))
{
Match match = reg.Match(requestPath);
].Value;
string newPath = "Login.aspx?id=" + id;
app.Context.RewritePath(newPath);
}
}
}
}
HttpApplication事件:BeginRequest(程序员最早能够处理的事件),acquireRequestState(能使用到session),PostRequestHandlerExecute(能使用到session),EndRequest等等。
二、微软的URLRewriter实现URL重写
把组件URLRewriter.dll拷到应用程序的bin目录下,然后在web.config下加入如下代码:
在<configuration></configuration>中加入:
<configSections> <sectionname="RewriterConfig"type="URLRewriter.Config.RewriterConfigSerializerSectionHandler, URLRewriter"/> </configSections> <RewriterConfig> <Rules> <RewriterRule> <LookFor>~/(})/Default".aspx</LookFor> <SendTo>~/Default.aspx?ID=$</SendTo> </RewriterRule> </Rules> </RewriterConfig>
然后在<system.web></system.web>中加入:
<httpHandlers> <addverb="*"path="*.aspx" type="URLRewriter.RewriterFactoryHandler, URLRewriter"/> </httpHandlers>
ASP.NET过滤器、URL重写的更多相关文章
- ASP.net的url重写
http://blog.csdn.net/windok2004/article/details/2432691 1. 有关于URL的重写,本文也只是拿来主意.相继有MS的组件“URLRewriter” ...
- ASP.NET MVC URL重写与优化(1)-使用Global路由表定制URL
ASP.NET MVC URL重写与优化(1)-使用Global路由表定制URL 引言--- 在现今搜索引擎制霸天下的时代,我们不得不做一些东西来讨好爬虫,进而提示网站的排名来博得一个看得过去的流量. ...
- asp.net 页面url重写
不更改情况下,页面路径为index.aspx?id=1,现在输入页面路径index/1时,也能访问到页面,这一过程叫做url重写 ①:在一个类里制定路径重写规则,以下为自定义UrlRewriterFi ...
- (转)ASP.net的url重写
1. 有关于URL的重写,本文也只是拿来主意.相继有MS的组件“URLRewriter”和在Global.asax里的“Application_BeginRequest()”编码方式,以及IIS里的I ...
- ASP.NET MVC URL重写与优化(进阶篇)-继承RouteBase
原文地址:http://www.51csharp.com/MVC/882.html ASP.NET MVC URL重写与优化(进阶篇)-继承RouteBase玩转URL 引言-- 在初级篇中,我们 ...
- Asp.net实现URL重写
原文:Asp.net实现URL重写 [概述] URL重写就是首先获得一个进入的URL请求然后把它重新写成网站可以处理的另一个URL的过程.重写URL是非常有用的一个功能,因为它可以让你提高搜索引擎阅读 ...
- ASP.NET MVC URL重写与优化(初级篇)-使用Global路由表定制URL
ASP.NET MVC URL重写与优化(初级篇)-使用Global路由表定制URL 引言--- 在现今搜索引擎制霸天下的时代,我们不得不做一些东西来讨好爬虫,进而提示网站的排名来博得一个看得过去的流 ...
- ASP.NET MVC URL重写与优化(进阶篇)-继承RouteBase玩转URL
http://www.cnblogs.com/John-Connor/archive/2012/05/03/2478821.html 引言-- 在初级篇中,我们介绍了如何利用基于ASP.NET MVC ...
- [转载]ASP.NET MVC URL重写与优化(进阶篇)-继承RouteBase玩转URL
引言-- 在初级篇中,我们介绍了如何利用基于ASP.NET MVC的Web程序中的Global文件来简单的重写路由.也介绍了它本身的局限性-依赖于路由信息中的键值对: 如果键值对中没有的值,我们无法将 ...
- 【转】Asp.net实现URL重写
[概述] URL重写就是首先获得一个进入的URL请求然后把它重新写成网站可以处理的另一个URL的过程.重写URL是非常有用的一个功能,因为它可以让你提高搜索引擎阅读和索引你的网站的能力:而且在你改变了 ...
随机推荐
- Flask-SQLALchemy查询
from: http://blog.sina.com.cn/s/blog_633277f90100kpvm.html 似乎ORM最难设计的部分是查询.特别是面向对象的查询,今天学习SQLAlchemy ...
- windows下实现uboot的tftp下载功能
一.原理分析 带有uboot的开发板实际上充当的就是tftp客户端,而PC机扮演的角色就是tftp服务器端,而tftp下载功能实际上就是文件传输.tftp服务器可以建立在虚拟机linux下,也可以建立 ...
- java 知识结构
JAVA基础阶段 阶段 技术名称 技术内容 T线 JavaSE JAVA 开发基础知识 | Eclipse 开发环境 | JavaSE 7.0 API | JavaSE 8.0新特性 | 多线程技术 ...
- iOS应用开发:什么是ARC?
iOS应用开发:什么是ARC? 博客分类: Phone / IOS / Objective-C / Swift ARC是什么 ARC是iOS 5推出的新功能,全称叫 ARC(Automatic R ...
- OrCAD PSpice仿真库模型
说明:本介绍包含了\capture\library\pspice和capture\library\pspice\advanls目录下所有库,但由于作者水平有限,介绍得也比较简单,有些说明可能不一定对. ...
- 转:关于PHP性能优化
原文来自于:http://www.cnblogs.com/qq78292959/archive/2012/12/28/2837272.html 1.升级硬件的一般规则:对于 PHP 脚本而言,主要的瓶 ...
- 转:PHP的线程安全ZTS与非线程(NTS)安全版本的区别
原文来自于:http://blog.sina.com.cn/s/blog_94c21e8f0101s2ic.html Windows版的PHP从版本5.2.1开始有Thread Safe(线程安全)和 ...
- N.O.W,O.R,N.E.V.E.R--12days to LNOI2015
双向链表 单调队列,双端队列 单调栈 堆 带权并查集 hash 表 双hash 树状数组 线段树合并 平衡树 Treap 随机平衡二叉树 Scapegoat Tree 替罪羊树 朝鲜树 块状数组,块状 ...
- 修改weblogic jvm启动参数
进入: D:\Oracle\Middleware\user_projects\domains\base_domain\startWebLogic.cmd 在call 上一行增加: set USER_M ...
- Delphi NativeXML 乱码的问题
我遇到 NativeXML 在它的一个节点的属性上面写入属性,但是当读出的值中包含汉字的时候出现了乱码.检查代码如下 NativeXml := TNativeXml.Create; try Nativ ...