网站导航免费论文 原创论文 论文搜索 原创论文 网学软件 学术大家 资料中心 会员中心 问题解答 原创论文 大学论文导航 设计下载 最新论文 下载排行 原创论文 论文源代码
返回网学首页
网学联系
最新论文 推荐专题 热门论文 素材专题
当前位置: 网学 > 编程文档 > ASP.net > 正文

在ASP.NET中执行URL重写

来源:http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 12/10/12
现可以处理请求的 ihttphandler

要通过 HTTP 程序程序执行 URL 重写,我们可以创建一个 HTTP 处理程序工厂,该处理程序工厂的 gethandler() 方法将检查被请求的路径,以确定是否需要重写 URL。如果需要,它可以调用传入的 httpcontext 对象的 rewritepath() 方法,如前面所讨论的。最后,HTTP 处理程序工厂可以返回由 system.web.ui.pageparser 类的 getcompiledpageinstance() 方法返回的 HTTP 处理程序。(此技术与内置 ASP.NET 网页 HTTP 处理程序工厂 pagehandlerfactory 工作时所应用的技术相同。)

由于所有 HTTP 模块都将在实例化自定义 HTTP 处理程序工厂之前进行初始化,因此,在将 URL 重写放在事件的后半段时,使用 HTTP 处理程序工厂就会带来相同的风险,即文件授权无法工作。因此,如果您依赖于 Windows 身份验证和文件授权,您可能希望为 URL 重写使用 HTTP 模块方法。

在下一部分中,我们将对构建可重用的 URL 重写引擎进行讨论。在介绍了 URL 重写引擎(可通过下载本文的代码获得)之后,我们将在剩下的两个部分中对 URL 重写的实际使用情况进行介绍。首先,我们将讨论如何使用 URL 重写引擎,并介绍一个简单的 URL 重写示例。接下来,我们将利用重写引擎的正则表达式功能来提供真正“可删节”的 URL。

返回页首返回页首

构建 URL 重写引擎

为了有助于描述如何在 ASP.NET Web 应用程序中实现 URL 重写,我创建了 URL 重写引擎。此重写引擎将提供以下功能:

?

使用 URL 重写引擎的 ASP.NET 页面开发人员可以在 Web.config 文件中指定重写规则。

?

重写规则可以使用正则表达式来实现功能强大的重写规则。

?

可以轻松地将 URL 重写配置为使用 HTTP 模块或 HTTP 处理程序。

在本文中,我们将介绍仅使用 HTTP 模块的 URL 重写。要查看如何使用 HTTP 处理程序来执行 URL 重写,请参考可随本文下载的代码。

为 URL 重写引擎指定配置信息

让我们先介绍一下 Web.config 文件中重写规则的结构。首先,您需要在 Web.config 文件中指明要使用 HTTP 模块还是 HTTP 处理程序来执行 URL 重写。在下载代码中,Web.config 文件包含两个已注释掉的条目:

<!--<httpModules>   <add type="URLRewriter.ModuleRewriter, URLRewriter"         name="ModuleRewriter" /></httpModules>--><!--<httpHandlers>   <add verb="*" path="*.aspx"         type="URLRewriter.RewriterFactoryHandler, URLRewriter" /></httpHandlers>-->

注释掉 <httpModules> 条目,以使用 HTTP 模块执行重写;注释掉 <httpHandlers> 条目,以使用 HTTP 处理程序执行重写。

除了指定使用 HTTP 模块还是 HTTP 处理程序执行重写外,Web.config 文件还包含重写规则:重写规则由两个字符串组成:要在被请求的 URL 中查找的模式;要替换此模式的字符串(如果找到)。在 Web.config 文件中,此信息是使用以下语法表达的:

<RewriterConfig>   <Rules>   <RewriterRule>      <LookFor>要查找的模式</LookFor>      <SendTo>要用来替换模式的字符串</SendTo>   </RewriterRule>   <RewriterRule>      <LookFor>要查找的模式</LookFor>      <SendTo>要用来替换模式的字符串</SendTo>   </RewriterRule>      </Rules></RewriterConfig>

每个重写规则均由 <rewriterrule> 元素表达。要搜索的模式由 <lookfor> 元素指定,而要替换所找到的模式的字符串将在 <sentto> 元素中输入。这些重写规则将从头到尾进行计算。如果发现与某个规则匹配,URL 将被重写,并且对重写规则的搜索将会终止。

在 <lookfor&

网学推荐

免费论文

原创论文

设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved 湘ICP备09003080号