查看文章
 
HttpMoudle实现用户身份验证
2009-12-04 19:37

参考自小白.net的HttpMoudle实现用户身份验证

下表列出了在 IIS 7.0 集成模式下运行的 ASP.NET 应用程序生命周期的各个阶段。

阶段

说明

发出一个对应用程序资源的请求。

ASP.NET 应用程序的生命周期以浏览器向 Web 服务器发送请求为起点。

在 IIS 7.0 经典模式下以及在 IIS 6.0 中,ASP.NET 请求管道与 Web 服务器管道分离。模块仅应用于路由到 ASP.NET ISAPI 扩展的请求。如果请求的资源类型的文件扩展名未显式映射到 ASP.NET,则不会为该请求调用 ASP.NET 功能,因为 ASP.NET 运行库没有处理该请求。

而在 IIS 7.0 集成模式下,由一个统一的管道处理所有请求。当集成管道收到请求时,该请求将经历所有请求共有的一些阶段。这些阶段由 枚举表示。所有请求都可以配置为使用 ASP.NET 功能,因为该功能封装在可以访问请求管道的托管代码模块中。例如,即使 .htm 文件扩展名未显式映射到 ASP.NET,对 HTML 页的请求仍会调用 ASP.NET 模块。这使您能对所有资源使用 ASP.NET 身份验证和授权。

统一管道接收对应用程序的第一个请求。

当统一管道接收对应用程序中的任何资源的第一个请求时,将为 类创建一个实例,该实例就是处理请求的应用程序域。应用程序域提供了应用程序之间全局变量的分离,并且使每个应用程序能够单独卸载。在应用程序域中,将为 类创建一个实例,该实例提供对有关应用程序的信息(如存储该应用程序的文件夹的名称)的访问。

在第一个请求期间,如果需要,将对应用程序中的顶级项进行编译,其中包括 App_Code 文件夹中的应用程序代码。可以根据本主题后面的 IIS 7.0 中的托管代码模块中的说明,在 App_Code 文件夹中包含自定义模块和处理程序。

将为每个请求创建响应对象。

在创建了应用程序域并对 对象进行了实例化之后,将创建并初始化应用程序对象,如 、 和 。 类包含特定于当前应用程序请求的对象,如 和 对象。 对象包含有关当前请求的信息,包括 Cookie 和浏览器信息。 对象包含发送到客户端的响应,其中包括所有呈现的输出和 Cookie。

下面是 IIS 6.0 和 IIS 7.0(在集成模式下,与 .NET Framework 3.0 或更高版本一起运行)之间的某些关键差异:

  • 可以使用 对象的 属性,设置对失败请求跟踪有用的代码。有关更多信息,请参见 Troubleshooting Failed Requests Using Failed Request Tracing in IIS 7.0(使用 IIS 7.0 中的失败请求跟踪功能解决失败请求存在的问题)。

  • 对象的 属性提供对响应的响应头的访问。

  • 在一个事件处理程序处理多个 事件时,可以使用 对象的两个属性 和 。

  • 对象的 和 属性支持写操作。

将 对象分配给请求

初始化所有应用程序对象之后,将通过创建 类的实例来启动应用程序。如果应用程序有 Global.asax 文件,则 ASP.NET 会创建从 类派生的 Global.aspx 类的实例。然后使用该派生类来表示应用程序。

注意:

第一次在应用程序中请求 ASP.NET 页或进程时,将创建 类的一个新实例。不过,为了尽可能提高性能,可对多个请求重复使用 实例。

加载哪些 ASP.NET 模块(如 )取决于应用程序从父应用程序继承的托管代码模块。这还取决于在应用程序的 Web.config 文件的配置节中配置了哪些模块。在应用程序的 Web.config 的 system.webServer 节中的 modules 元素中添加或移除模块。有关更多信息,请参见如何:为 IIS 7.0 配置 <system.webServer> 节。

由 管线处理请求。

在处理请求时, 类会执行下列任务。这些事件对于希望在引发关键请求管道事件时运行代码的网页开发人员很有用。如果是在开发自定义模块,并且希望对发往管道的所有请求都调用该模块,则这些事件也很有用。自定义模块实现 接口。在 IIS 7.0 集成模式下,必须在模块的 方法中注册事件处理程序。

  1. 对请求进行验证,将检查浏览器发送的信息,并确定其是否包含潜在恶意标记。有关更多信息,请参见 和脚本侵入概述。

  2. 如果已在 Web.config 文件的 节中配置了任何 URL,则执行 URL 映射。

  3. 引发 事件。

  4. 引发 事件。

  5. 引发 事件。

  6. 引发 事件。

  7. 引发 事件。

  8. 引发 事件。

  9. 引发 事件。

  10. 引发 事件。将根据所请求资源的文件扩展名,选择相应的处理程序。处理程序可以是本机代码模块,如 IIS 7.0 StaticFileModule,也可以是托管代码模块,如 类(它处理 .aspx 文件)。

  11. 引发 事件。

  12. 引发 事件。

  13. 引发 事件。

  14. 引发 事件。

  15. 为该请求调用合适的 类的 方法(或异步版 )。例如,如果该请求针对某页,则当前的页实例将处理该请求。

  16. 引发 事件。

  17. 引发 事件。

  18. 引发 事件。

  19. 如果定义了 属性,则执行响应筛选。

  20. 引发 事件。

  21. 引发 事件。

  22. 引发 事件。

  23. 引发 事件。

  24. 引发 事件。

  25. 引发 事件。

  26. 引发 事件。

    注意:

    只有当应用程序在 IIS 7.0 集成模式下运行,并且与 .NET Framework 3.0 或更高版本一起运行时,才会支持 、 和

转载于:https://www.cnblogs.com/aion111/archive/2010/02/02/1661856.html

HttpMoudle实现用户身份验证相关推荐

  1. 用户身份验证配置需考虑的因素

    你现在要建立一个系统.无论系统的功能如何,用户身份验证都是始终存在的一个功能.实现它看起来应该很简单--只需"拖动"一些现成的身份验证模块,或使用一些基本选项(例如 Spring ...

  2. php路由器怎么登录认证,PHP用户身份验证,如路由器登录

    当我们尝试登录路由器时,如何在php中创建用户身份验证. 当我输入网址,例如www.example.com/portal时,应该有一个提示,如上面的图像询问用户名和密码. 这是什么类型的身份验证.如何 ...

  3. IdentityServer4 使用OpenID Connect添加用户身份验证

    使用IdentityServer4 实现OpenID Connect服务端,添加用户身份验证.客户端调用,实现授权. IdentityServer4 目前已更新至1.0 版,在之前的文章中有所介绍.I ...

  4. python计算机体系三层结构_Python tkinter 实现简单登陆注册 基于B/S三层体系结构,实现用户身份验证...

    Python tkinter 实现简单登陆注册 最终效果 开始界面 ​ 注册 登陆 ​ 源码 login.py # encoding=utf-8 from tkinter import * from ...

  5. Apache用户身份验证

    原文链接:http://www.yylog.org/?p=4830 Apache用户身份验证 在apache应用过程中,管理员经常需要对apache下的目录做一些限制,不希望所有用户都能访问该目录下的 ...

  6. 用户身份验证最佳做法清单

    用户身份验证是每个Web应用程序共享的功能. 我们已经实现了很多次,所以很早以前就应该完善它. 然而,错误无时无刻不在发生. 造成这种情况的部分原因是,可能出问题的清单很长. 您可能会错误地存储密码, ...

  7. 使用React,Spring Boot和用户身份验证构建CRUD应用程序

    建筑物身份管理,包括身份验证和授权? 尝试Stormpath! 我们的REST API和强大的Java SDK支持可以消除您的安全风险,并且可以在几分钟内实现. 注册 ,再也不会建立auth了! Re ...

  8. 如何在Python Django中处理用户身份验证

    by Mohammed Subhan Khan 由Mohammed Subhan Khan 如何在Python Django中处理用户身份验证 (How to handle user authenti ...

  9. Github官方app分析——用户身份验证模块

    这篇文章记述的是我对Giuhub官方app的用户身份验证模块的分析. Giuhub的官方app虽然是一个非常小众的程序,但是从程序的设计的角度看,这是一个非常优秀的项目.对于其用户身份验证模块,给我留 ...

最新文章

  1. 将来,你会成为这三种程序员之一
  2. 真香!原来 CLI 开发可以这么简单
  3. 前端学习(2944):前一天回顾
  4. 利用win7系统自身修复还原功能
  5. ubuntu display
  6. 若想学 HTML,应从何入手?
  7. 主流芯片架构即将变天!
  8. Flink + Hudi 在 Linkflow 构建实时数据湖的生产实践
  9. 永磁同步电机模型之坐标变换
  10. 计算机用户导入导出,使用csvde批量添加,导入,导出用户
  11. 机器学习实战笔记1——机器学习导论
  12. 全国计算机教学图片,全国“xx杯”计算机类说课大赛课件一等奖作品:图层蒙版教学课件.pptx...
  13. 关于a:hover span和a span:hover的区别
  14. 北京妙计旅行 后台开发实习一面二面
  15. 关于编译报错“dereferencing pointer to incomplete type...
  16. 推荐几个矢量图库网站
  17. 当咖啡师,开咖啡店,要学哪些东西
  18. python广深地区房价数据的爬取与分析
  19. 过拟合的原因和解决方案
  20. 水哥:用好泳道图,轻松化解复杂系统的业务流程梳理 | 真北敏捷群分享

热门文章

  1. Hibernate开发工具-CownewStudio测试版发布
  2. <<science>> new and potential research areas
  3. Win7与其它Windows的双系统问题
  4. Flutter ListView封装,下拉刷新、上拉加载更多
  5. pom.xml文件指定jdk版本号/跳过测试
  6. 机器学习算法:补一个k-近邻算法的测试
  7. 扩展Pentaho Report Designer报表工具
  8. Linux 下解压文件命令大全
  9. SQL Server 2005 Integration Services (SSIS) (2) - 导入/导出向导
  10. hdu 2059(dp)