没有合适的资源?快使用搜索试试~ 我知道了~
ASP.NET资源的请求所经过的处理流程:首先,IIS接收到该请求并将其转交给aspnet_isapi.dll。其次,ASP.NET引擎将一些 HttpModule初始化。
资源推荐
资源详情
资源评论
Asp.Net 重定向必须要知道的一些资料重定向必须要知道的一些资料
ASP.NET资源的请求所经过的处理流程:首先,IIS接收到该请求并将其转交给aspnet_isapi.dll。其
次,ASP.NET引擎将一些 HttpModule初始化。
1.1. 概要
如何使用微软提供的Asp.Net来对动态产生的URL地址进行网址重写。网址重写是实现一种截取网址请求并将其进行处理后重
新指向到一个指定的网址的过程。作者本人在对各种实现网址重写的技术进行研究和探讨后得出的经验和方法,希望能对您有
所帮助。
1.2. 内容简介
稍微花点时间看类似这样的地址:http://www.XXX.com/EmployeeInfo.aspx?ID=459&type=summary ,也许你会出于某种目
的把大量的页面文件从一个目录甚至一个网站转移到其他地方,而许多访问者出于个人兴趣或者研究目的之前就已经将原有网
址收藏了起来,如果这时他从收藏夹打开该页面的时候发现这已经是坏链了。本文旨在介绍如何使用网址重写将那些“难看”的
网址转换成比较有实际意义的网址,使其便于记忆。例如将http://www.XXX.com/EmployeeInfo.aspx?ID=459&type=summary
转换成如下地址:http://www.XXX.com/EmployeeInfo/459/summary.html 。我们甚至发现网址重写技术可以解决令人头疼的
404错误,或者说它可以创建一个智能化的404错误解决方案。
网址重写是实现一种截取网址请求并将其进行处理后重新指向到一个指定的网址的过程。在网址重写执行的期间,相应处理程
序处理被请求的网址,从中提取出相关的值,然后重新指向一个新的指定地址。例如:由于一次网站目录调整,原有的
/people/ 子目录下的所有网页全部移动到/info/employees/目录,原访问者从收藏夹或者其他什么地方点击链接发出访
问/people/目录下的文件的请求时,你肯定希望他还是能通过原有地址看到和原来相同的页面,但实际上看到的却是网址重写
指向的新目录下的相应文件。
在老版本ASP中,使用网址重写技术的途径很少,要么写一个ISAPI过滤器,要么购买第三方厂商提供的网址重写组件,然而
在微软提供的ASP.NET下你可以通过多种方法很简单地开发出自己的网址重写软件,以满足自己各种不同的需要。本文将和
你一起讨论这门针对ASP.NET开发人员的实现网址重写的技术,然后举一些网址重写实际应用的例子。在我们深入探讨网址
重写技术的细节之前,我们先看一下日常使用网址重写技术实现的场景。
1.3. 网址重写的一般用途
创建一个数据操作的Asp.Net程序最常见的就是一个aspx页面后面带上一些查询参数集合。例如在设计一个电子商务网站的时
候,假定你设计了一项功能允许用户浏览待售的商品,为了更加方便操作,你设计了一个页面Category.aspx将商品按照给定
的分类显示,那么该分类下的商品显示页面上应该在页面文件对应网址后面加上了一个商品分类的查询参数,例如用户要查询
待售的“装饰品”,在数据库中所有的装饰品数据对应的分类编号CategoryID的值为5,那么用户会访问如下网址:
http://www.XXX.com/Category.aspx?CategoryID=5。
创建一个包含类似这样网址的网站最终有两种结果,首先从最终用户的角度来观察,http://://www.XXX.com/Category.aspx?
CategoryID=5 这个网址有些杂乱,可行性分析专家Jakob Neilson建议选择网址显示方式时候考虑如下要求:
● 是否简短
● 是否易于输入
● 是否将站点结构形象化
● 是否具有隐蔽性,也就是让用户通过一个虚拟的看似有意义的导航地址访问指向该地址
我想还应该在上述列表中再增加一条:是否便于记忆。http://www.XXX.com/Category.aspx?CategoryID=5 这个地址没有一个
地方符合Neilson标准的任何一条,也不便于记忆。当然,对于有经验的网络开发专家来说,他们很熟悉这种键值对构成的查
询参数结构体系,然而对于普通用户来说输入这些带有参数的网址实在是太麻烦了。
一种较好的方法就是使用一种比较直观且容易记忆的方式来将网址表示为:http://www.XXX.com/products/Widgets 乍一看很
容易就会推断这个网址所对应的内容极有可能会是显示装饰品(Widgets)信息,这个网址就变得更加容易记忆和传播!然后
我告诉我的同事:“请查看这个网址:http://://www.XXX.com/products/widgets ”不用我说第二遍,她可能一次就把地址敲到浏
览器上了。很快就浏览器上就列出了装饰品(Widgets)的内容。这里“隐蔽性”表示:用户可以自行变更网址的结尾,例如输
入:http://www.XXX.com/products 就能看到全部分类相关的商品列表或者列出所有相关商品分类目录列表。
注:用上述简单的变更网址内容的方法来构思一下如今的比较流行的Blog网站生成的网址。例如:要查询2004年1月28日所发
的帖子,只需输入 http://someblog.com/2004/01/28 即可,如果将网址裁减为 http://someblog.com/2004/01 则显示 2004年1
月份的帖子 ,同样将月份裁减掉得到 http://someblog.com/2004 则显示出2004年全年所发的帖子。
网址重写技术除了用于将复杂的网址简单化之外,它还能用于处理因网站目录调整或者其他原因导致产生大量的无效链接和过
期书签。
1.4. 当一个Web请求传送到IIS会发生什么?
在探讨如何实现网址重写这项技术之前,很有必要了解一下IIS是处理所接收的Web请求的机制。当一个Web请求到达IIS Web
服务器时,IIS会根据所请求的文件后缀名来决定如何处理该请求,IIS可以处理诸如HTML页面、图片、静态内容,或者将请
求转发给ISAPI应用程序,由该ISAPI应用程序处理后生成HTML静态内容返回给IIS,最后由IIS将请求结果发送回给客户端。
(一个ISAPI应用程序就是一套编译好能随时在后台运行的类库,它的任务就是根据请求生成相关的内容。)
例如:如果IIS接收到一个对Info.asp的请求,它会将该请求转交给asp.dll来处理,该ISAPI应用程序调出并执行所请求的ASP
页面,然后把生成的HTML代码返回给IIS,IIS最后把内容发送回请求客户端。对于ASP.NET页面,IIS则将请求转交给名为
aspnet_isapi.dll的ISAPI应用程序来处理,该ISAPI应用程序调用托管的Asp.Net工作进程来处理该请求,并将生成的HTML 代
码返回给请求客户端。你可以自定义IIS,将某一类扩展名映射到指定的ISAPI应用程序。
关于对IIS如何管理所接收的请求的详细探讨有些超出本文内容,想了解的更详细的话可以参考Michele Leroux Bustamante的
著作Inside IIS and ASP.NET(深入研究IIS与ASP.NET),重要的是要了解Asp.Net引擎只负责处理对扩展名已经被正确配置映
射到aspnet_isapi.dll的网络请求。
1.5. 用ISAPI过滤器来分析请求
除了将请求的文件扩展名映射到相应的ISAPI应用程序外,IIS还执行一些其他工作。例如IIS还主动对发出请求的客户端用户
进行授权,并判断已授权用户是否对其请求的文件拥有访问权限,在一个请求过程的全部生命期内,IIS的处理经历了几个阶
段,在每一个阶段IIS都生成一个事件,而该事件可以被 ISAPI过滤器实时操控的。
如同ISAPI应用程序一样,ISAPI过滤器也是一块块安装在Web服务器上的非托管代码。ISAPI应用程序用于对所接收的特定文
资源评论
weixin_38733245
- 粉丝: 4
- 资源: 894
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- Cesium 高程为0的地形数据
- 国产化神通数据库-数据库开发手册
- Oracle数据库备份与恢复教程.zip
- 苹果闹铃音乐苹果闹铃音乐
- Unity导入Excel文件自动创建class文件和ScriptObject文件,并转化成ScriptObject的插件pro版
- UE4仅k位移产生完美行走动作-UE4项目
- 基于 Python 的校园导航系统
- tensorflow-2.6.3-cp37-cp37m-manylinux2010-x86-64.whl
- tensorflow-2.6.2-cp39-cp39-win-amd64.whl
- tensorflow-2.6.2-cp39-cp39-manylinux2010-x86-64.whl
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功