加入收藏 | 设为首页 | 会员中心 | 我要投稿 焦作站长网 (https://www.0391zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > Asp教程 > 正文

在ASP.NET中用MSDNURLRewriting实现Url Rewriting

发布时间:2020-03-20 12:31:34 所属栏目:Asp教程 来源:互联网
导读:在ASP.NET中用MSDNURLRewriting实现Url Rewriting

每一条规则都用一个<RewriterRule>元素表示,以<LookFor>节表示查询模式,当查询模式发现匹配字符串时便用<SendTo>节表示的字符串进行替换。这些规则从上到下进行查询匹配,如果找到一个匹配则按此规则执行网址重写,并且停止查找。
配置<LookFor>节要使用正则表达式来进行字符串匹配和替换。(在此我们举一个例子来说明如何使用正则表达式来对字符串进行匹配和替换。)既然该查找模式是一个正则表达式,那么要注意避开对正则表达式保留字符串的直接使用。(正则表达式的保留字符串包括有:.,?,^,$,等等,可以通过在前面加上一个反斜线来引用这些保留字符,例如.表示引用一个句点)

1.12.2. 使用HttpModule来执行网址重写

创建一个HttpModule很简单,只要创建一个实现IHttpModule接口的类,该IHttpModule接口定义了两个方法:
 Init(HttpApplication),该方法在HttpModule初始化时引发,通过该方法为HttpApplication事件调用相应的事件委托;
 Dispose(),当相应请求处理结束并发送回IIS调用此方法,通过此方法执行最终所有的清理和回收程序。
为了更加方便地为网址重写创建HttpModule,从一开始我就创建一个抽象的基类(BaseModuleRewriter),该类实现了IHttpModule接口。在Init(HttpApplication)事件中,它通过BaseModuleRewriter_AuthorizeRequest方法引发了HttpApplicationAuthorizeRequest事件,该BaseModuleRewriter_AuthorizeRequest方法通过该类的Rewrite()方法重写传入参数HttpApplication对象的内部请求虚拟路径(Path)。在BaseModuleRewriter对象中,该Rewrite()方法是抽象的,并且没有实际内容,但在继承自该类的对象中必须重载Rewrite()方法并为该方法提供实际内容。
通过对该基类的继承,所有需要做的工作就是创建一个继承自BaseModuleRewriter的类,重载Rewrite()方法并在该方法中添加网址重写逻辑代码。下文列出BaseModuleRewriter代码:

(编辑:焦作站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

推荐文章
    热点阅读