进入旧版 | 服务项目 | 成功案例 | 联系方式 | 过客留言 | 友情链接
   
设为首页
加入收藏
联系我们
网站首页 | 新闻资讯 | 操作系统 | 办公软件 | 网络软件 | 工具软件 | 媒体动画 | 网页制作 | 网站开发 | 程序开发 | 平面设计
Photoshop视频教程 | Word入门 | Flash入门 | JScript | VBScript | ASP | PHP | ADO | 网页特效 | 3DS MAX6.0命令 | 系统进程
您当前的位置:GOODSGY电脑学习网 -> 程序开发 -> .Net -> 文章内容  
ASP.NET构架与安全机制之Http请求处理

本文转自博客园,文中内容不代表本站观点,仅提供参考。

  导读

  在写本系列文章的过程中,我遇到了很大的困惑:在我准备讲述问题A的时候,我发现需要先解释问题B;当我考虑如何讲解问题B的时候,又发现如果对问题C不够清楚,很难较好地理解问题B。好吧,事已至此,我决定从问题C开始着手。不幸的是… 我已经跑题了。www.goodsgy.com

  本系列文章原计划分成十个部分讲述Asp.Net构架、安全机制 和 Provider模型,然而在写作的过程中,我发现由于涉及的知识面太广,Provider 模型在本系列文章中的地位已经大大降低了。与此同时,我认识到想用十个Part讲述清楚Asp.Net的构架与安全机制是不可能的,但我仍会尝试用最少的文字讲述最多的内容。www.goodsgy.com

  阅读的过程中,你可能会觉得文中有的内容看上去与正在讨论的内容关系不大,这时候请你耐心地读下去,它往往是你理解后面问题的关键。www.goodsgy.com

  在开始阅读这一系列文章之前,请注意以下几点:www.goodsgy.com

  ·本系列文章文会详细讲述 Form验证,粗略讲述Windows验证,不讲述 Passport验证。www.goodsgy.com

  ·有时候我会采用自顶向下的方式讲述,另一些时候我会采用自底向上的方式讲述,这一切视需要而定。www.goodsgy.com

  ·尽管我很不愿意在段落之中插入过多的灰色说明文字,但是很多地方不如此很难讲述清楚,我会在所有Part全部发布完后对本系列文章进行修订。www.goodsgy.com

  ·我们经常提到或者听到三层式开发,也不断在网上搜寻三层式开发的源码来研究。实际上,等你了解了Provider模型后,就会发现最近的三层构架其实就在身边。希望能认真学习Provider模型并思考其实用价值。www.goodsgy.com

  ·文章中的插图是在 IIS 6.0 和 Windows Server2003 下截取的,如果与 IIS 5.0的区别大到足以产生误导,请反馈给我。www.goodsgy.com

  ·由于本系列文章涉及的知识点比较多,而我又采用写一个Part发布一个的方式。所以,很可能写Part.4时候才发现Part.3很多地方没有讲清楚,这时候我会停下来重新修改Part.3;我也可能在写Part.5的时候发现Part.1的一些内容挪到Part.2更合适。 请原谅我在做这些改动的时候不再另行通知。www.goodsgy.com

  这将是一次漫长的旅途,如果你现在已经整装待发,那我们就上路吧!www.goodsgy.com

  引言www.goodsgy.com

  我查阅过不少Asp.Net的书籍,发现大多数作者都是站在一个比较高的层次上讲解Asp.Net。他们耐心、细致地告诉你如何一步步拖放控件、设置控件属性、编写CodeBehind代码,以实现某个特定的功能。www.goodsgy.com

  这种做法,实际上是回答了“如何去做”的问题,却没有回答“为什么可以这样做”的问题。www.goodsgy.com

  尽管我很推崇 悉江华 先生的《圣殿祭祀的Asp.Net开发详解》一书,但当我翻看了一下其对角色(Role) 和 用户(Member)的讲解时,我决定跳过去直接读后面的章节。因为我发现他也随了大流,对这部分的讲解停留在“如何去做”的层面上。我相信像悉先生 这样的牛人是不可能不了解底层运作原理的,仅仅是因为那本书原本就已经很厚了吧。www.goodsgy.com

  当你按“如何去做”所讲解的内容去开发程序的时候,对于你的用户,你仍是一名程序员;但对于实现了MembershipProvider 和 RoleProvider 抽象类的微软开发人员来说,你已经成了他们的一个用户。www.goodsgy.com

  NOTE:我既不反对一些作者只讲解“如何去做”,也不反对你只学“如何去做”,这样也有它的好处,就是可以快速开发。我只是建议多掌握一点底层知识,对一些问题会有更好的理解。www.goodsgy.com

  希望通过这一系列文章的讲解,可以让你更好的理解Asp.Net的安全机制和身份验证及权限管理的底层运作原理。www.goodsgy.com

  Http请求处理流程概述www.goodsgy.com

  思考“为什么在地址栏输入www.tracefact.net就可以看到张子阳的个人空间?”,类似于思考“为什么苹果是往地上掉不是往天上飘?”。对于普通访问者来说,这就像每天太阳东边升起西边落下一样是理所当然的;对于很多程序员来说,认为这个与己无关,不过是系统管理员或者网管员的责任。毕竟,IIS是 Windows 的一个组件,又不是 Asp.Net 的一个组成部分。而实际上,从你轻拍回车到页面呈现在你眼前的十分之一秒内,IIS和.Net Framework已经做了大量的幕后工作。www.goodsgy.com

  你可能觉得了解这些幕后工作是如何运作的无关紧要,作为程序员的你只要保证开发出的程序可以高效地运行就可以了。然而,在开发过程中,你却发现常常需要使用诸如 HttpContext 这样的类。这个时候,你可曾思考过这些类的构成和类的实体是如何创建的?你可能简单地回答:HttpContext代表当前请求的一个上下文环境。可你又知道IIS 、Framework、Asp.Net 是如何协同工作处理每个Http请求、如何区分不同的请求、IIS、Framework、Asp.Net三者之间的数据如何流动么?www.goodsgy.com

  回答上面这些问题,首先需要了解IIS是如何处理页面请求的,这也是理解 Form验证模式和Windows 验证模式 的基础。www.goodsgy.com

  Http请求刚刚到达服务器的时候www.goodsgy.com

  当服务器接收到一个 Http请求的时候,IIS 首先需要决定如何去处理这个请求(NOTE:服务器处理一个.htm页面和一个.aspx页面肯定是不一样的么)。那IIS依据什么去处理呢?―― 根据文件的后缀名。www.goodsgy.com

  服务器获取所请求的页面(NOTE:也可以是文件,比如 jimmy.jpg)的后缀名以后,接下来会在服务器端寻找可以处理这类后缀名的应用程序,如果IIS找不到可以处理此类文件的应用程序,并且这个文件也没有受到服务器端的保护(NOTE:一个受保护的例子就是 App_Code中的文件,一个不受保护的例子就是你的js脚本),那么IIS将直接把这个文件返还给客户端。www.goodsgy.com

  能够处理各种后缀名的应用程序,通常被称为 ISAPI 应用程序(NOTE:Internet Server Application Programe Interface,互联网服务器应用程序接口)。虽然这 ISAPI 听上去还挺气派,也算是“应用程序”呢,但仔细看看它的全称就明白了:它实际上只是一个接口,起到一个代理的作用,它的主要工作是映射所请求的页面(文件) 和与此后缀名相对应的实际的处理程序。www.goodsgy.com

  让我们更进一步地看一下 ISAPI ,看看它到底是什么样子,请按下面的步骤进行:www.goodsgy.com

  1. 打开IIS。www.goodsgy.com

  2. 选择随意一个站点,鼠标右键,“属性”。www.goodsgy.com

  3. 选择“主目录”选项卡。www.goodsgy.com

  4. 选择“配置”。www.goodsgy.com

  你应该会看到如下的画面:www.goodsgy.com

  图1. 应用程序配置www.goodsgy.com

  www.goodsgy.com

  很清楚地就可以看到,所有IIS所能处理,或者叫 ISAPI 所提供代理服务的 文件类型 及其相对应的实际的后台处理程序都在这里清楚地列出来了。www.goodsgy.com

  我们找到 .aspx 的应用处理程序,然后点“编辑”,会出现下面的画面:www.goodsgy.com

  图2. 编辑.aspx文件的处理程序www.goodsgy.com

  www.goodsgy.com

  一路看到这里,可以看出,所有的.aspx文件实际上都是由 aspnet_isapi.dll 这个程序来处理的,当IIS把对于.aspx页面的请求提交给了aspnet_isapi.dll以后,它就不再关心这个请求随后是如何处理的了。www.goodsgy.com

  这里需要注意两点:www.goodsgy.com

  1、当你修改“限制为”后,可以限制页面(文件)只能以某种特定方式访问。www.goodsgy.com

  2、“确认文件是否存在”是实现 URL 地址映射的关键选项,我以后会专门讲述。www.goodsgy.com


[1] [2]  下一页

在百度中搜索:ASP.NET构架与安全机制之Http请求处理
在Google中搜索:ASP.NET构架与安全机制之Http请求处理
在Yahoo中搜索:ASP.NET构架与安全机制之Http请求处理

收藏到网摘:新浪VIVI 365key 我摘 POCO网摘 博采中心 YouNote 和讯网摘 天天收藏
[] [返回上一页] [打 印] [收 藏]

 相关文章    最新文章
· 初学ASP编程易犯的一个错误要注意
· ASP实现SQL语句日期格式的加减运算
· [组图] Flash实例:可爱的小青蛙闹钟
· ASP程序中输出Excel文件实例一则
· [组图] Flash也能制作特色小图标
· IIS下ASP程序运行故障的解决
· [组图] Flash实例教程:卡通MM眨眼睛动画
· PPT文稿的位置移动后,Flash动画为什么不..
· [图文] Flash基础:了解动画基础知识
· [组图] 不再受格式限制 Office文档变Flash..
 
· C#中的数字格式化、格式日期格式化
· 在ASP.NET中跨页面实现多选
· Asp.net编程中的数组基础实例学习
· [组图] ASP.NET构架与安全机制之Http请求处..
· ASP.NET如何保留两位小数点
· Visual C#多线程参数传递浅析
· 在Visual C#中定义和使用自己的特性
· [图文] 利用C#远程存取Access数据库
· 用VB.NET 2005编写定时关机程序
· 《Effective C#》之减少装箱和拆箱

∷相关文章评论∷    (评论内容只代表网友观点,与本站立场无关!) [更多评论…]
站内搜索

精彩图文
  网站导航  
操作系统 办公软件 网络软件
Vista Windows2003 WindowsXP Windows2000/NT Windows9X/ME Linux 其他 Word Excel Powerpoint Outlook 金山系列 其他 网页浏览 上传下载 联络聊天 邮件工具 服务器软件 网络辅助
工具软件 媒体动画 网页制作
系统工具 媒体工具 压缩工具 图文处理 文件管理 其他 3DMAX Authorware Director Maya 视频处理 其他 Flash Dreamweaver FireWorks FrontPage LiveMotion Golive HTML/CSS 其它
网站开发 平面设计 程序设计
ASP JSP PHP CGI JavaScript VBScript XML/SOAP Web服务器 Photoshop PhotoImpact CorelDraw Illustrator Freehand 设计欣赏 其他 VB VC .NET C/C++ DELPHI JAVA

冀ICP备05019428号
Copyright © 2004-2008 电脑学习网 Inc.All rights reserved.
TEL:13832340607
QQ:39873155
E_Mail:goodsgy(#)hotmail.com   (把(#)替换成@)
MSN:goodsgy(#)hotmail.com   (把(#)替换成@)